The document discusses various software design methodologies and lifecycles. It begins by explaining the motivation for software engineering practices and then describes goals of software engineering. It also covers software lifecycle models including waterfall, code-and-fix, spiral, rapid prototyping, and iterative development. The document discusses the advantages and disadvantages of different models. It provides details on practices like extreme programming and use of commercial off-the-shelf software. Overall, the document provides an overview of key concepts in software design methodologies.
Engineered Resilient Systems, overview and status, 31 october 2011RNeches
The document discusses the need for Engineered Resilient Systems (ERS) to address challenges in developing systems that are affordable, effective, and adaptable. It outlines three key goals for ERS: (1) enabling affordable engineering via less rework; (2) ensuring effectiveness via better informed design decisions; and (3) facilitating adaptability through design and testing for a wider range of missions. It also identifies technical gaps in areas like system representation and modeling, characterizing changing operational environments, and enabling cross-domain coupling between different models. The overall aim is to develop technologies that allow systems to be engineered, analyzed, and adapted more quickly across their lifecycles.
The document discusses project management at NASA. It provides definitions of projects and project management, and traces the evolution of project management from ancient times to the present. It also discusses frameworks for classifying projects based on their complexity, novelty, and pace. Specifically, it introduces the NCTP model for distinguishing project types and analyzing which project management approach is optimal. It analyzes examples like the Denver airport and space shuttle projects using this framework. Finally, it considers some limitations of current project management approaches.
VeduPro is a global IT consulting and services firm based in India that provides e-learning solutions, mobile solutions, digital content development, and educational ERP services. It has worked with major companies in the US, Canada, Kenya, and India. VeduPro has years of experience in the e-learning domain and brings open source e-learning solutions to the education, corporate, and non-profit sectors to cut costs and engage learners. It analyzes clients' IT infrastructure and develops customized technology solutions that meet business goals.
Software enginnering unit 01 by manoj kumar sonimanojsonikgn
Configuration management involves establishing and maintaining the integrity of software products throughout the software life cycle. It includes identifying configuration items, controlling changes, and recording and reporting change implementation status. The key activities of configuration management are configuration management planning, change management, version management, and system building. Configuration management aims to explain the importance of software configuration management and describe these main configuration management activities.
The document discusses how search-based software engineering (SBSE) is important for software maintenance. It describes maintenance tasks that SBSE can help with, such as program comprehension, change support, automatic bug fixing, and test generation. The document also discusses challenges in applying SBSE to maintenance, such as balancing conflicting objectives like maintainability versus performance. It provides examples of maintenance activities from the IEEE standard that could benefit from SBSE's ability to explore large search spaces and balance tradeoffs. Open problems are discussed, such as how to manage maintenance activities and schedule tasks over time.
The document discusses the process for evolving solutions and the roles of coaches in that process. It describes the different solution statuses including framed, draft, reviewed, rework, internal, published, suspect, and obsolete. It outlines expectations for coaches such as reviewing solutions, providing feedback, and participating in meetings. Coaches are also advised to utilize queries and filters to review solutions by status, owner, and product. The document provides guidance on what coaches should look for when reviewing solutions and tips for ensuring solutions are properly formatted, technically valid, and findable/usable.
Engineered Resilient Systems, overview and status, 31 october 2011RNeches
The document discusses the need for Engineered Resilient Systems (ERS) to address challenges in developing systems that are affordable, effective, and adaptable. It outlines three key goals for ERS: (1) enabling affordable engineering via less rework; (2) ensuring effectiveness via better informed design decisions; and (3) facilitating adaptability through design and testing for a wider range of missions. It also identifies technical gaps in areas like system representation and modeling, characterizing changing operational environments, and enabling cross-domain coupling between different models. The overall aim is to develop technologies that allow systems to be engineered, analyzed, and adapted more quickly across their lifecycles.
The document discusses project management at NASA. It provides definitions of projects and project management, and traces the evolution of project management from ancient times to the present. It also discusses frameworks for classifying projects based on their complexity, novelty, and pace. Specifically, it introduces the NCTP model for distinguishing project types and analyzing which project management approach is optimal. It analyzes examples like the Denver airport and space shuttle projects using this framework. Finally, it considers some limitations of current project management approaches.
VeduPro is a global IT consulting and services firm based in India that provides e-learning solutions, mobile solutions, digital content development, and educational ERP services. It has worked with major companies in the US, Canada, Kenya, and India. VeduPro has years of experience in the e-learning domain and brings open source e-learning solutions to the education, corporate, and non-profit sectors to cut costs and engage learners. It analyzes clients' IT infrastructure and develops customized technology solutions that meet business goals.
Software enginnering unit 01 by manoj kumar sonimanojsonikgn
Configuration management involves establishing and maintaining the integrity of software products throughout the software life cycle. It includes identifying configuration items, controlling changes, and recording and reporting change implementation status. The key activities of configuration management are configuration management planning, change management, version management, and system building. Configuration management aims to explain the importance of software configuration management and describe these main configuration management activities.
The document discusses how search-based software engineering (SBSE) is important for software maintenance. It describes maintenance tasks that SBSE can help with, such as program comprehension, change support, automatic bug fixing, and test generation. The document also discusses challenges in applying SBSE to maintenance, such as balancing conflicting objectives like maintainability versus performance. It provides examples of maintenance activities from the IEEE standard that could benefit from SBSE's ability to explore large search spaces and balance tradeoffs. Open problems are discussed, such as how to manage maintenance activities and schedule tasks over time.
The document discusses the process for evolving solutions and the roles of coaches in that process. It describes the different solution statuses including framed, draft, reviewed, rework, internal, published, suspect, and obsolete. It outlines expectations for coaches such as reviewing solutions, providing feedback, and participating in meetings. Coaches are also advised to utilize queries and filters to review solutions by status, owner, and product. The document provides guidance on what coaches should look for when reviewing solutions and tips for ensuring solutions are properly formatted, technically valid, and findable/usable.
Ravit Danino HP - Roles and Collaboration in AgileAgileSparks
Roles and collaboration have changed in Agile. Entire teams now work together throughout a sprint rather than having separate roles confined to specific phases. The whole team, including developers, business analysts, testers, and documentation specialists, collaborates continuously. They plan iterations together, provide feedback to each other, and ensure code meets quality standards through coffee and end-to-end testing. With Agile, customers also become key enablers by providing early feedback to help shape requirements and the product.
This document provides an overview of services offered by Integrated Technologies, Inc. related to surface finishing processes. It includes sections on master planning, facility design, project implementation, operations and maintenance support, opportunity assessments, asset management, production planning, water and wastewater management, and energy efficiency. Design drawings and diagrams are presented for surface finishing lines, tank sizing, phased renovation plans, and water recycling systems.
White Paper: Configuration and Build Management of Product Line Development w...Perforce
This document discusses configuration and build management strategies for product line development using Perforce. It defines key terms like components, assets, core assets, and custom assets. It recommends organizing Perforce depots by asset type and discusses branch strategies for controlling changes to assets. Branch hierarchies separate development, review, testing, and release activities. Configuration management policies govern activities under each project.
The document discusses design for reliability (DFR) topics including the need for DFR, the DFR process, terminology, Weibull plotting, system reliability, DFR testing, and accelerated testing. It provides details on the DFR process, common reliability terminology such as reliability, failure rate, mean time to failure, and the bathtub curve. It also explains the exponential distribution and Weibull plotting, which are important reliability analysis tools.
This document provides an overview of Linkroad's corporate portfolio. It establishes that Linkroad has been in business since 2005, is headquartered in Shanghai with additional presences, and creates business advantages for enterprises through proven IT implementations. It outlines Linkroad's vision to be a leading regional provider with IT consulting expertise, as well as its mission to maximize clients' effectiveness. The document also describes Linkroad's methodology, major alliances, differences compared to others, and thanks the reader.
ForchuTeck Consulting Inc is an international consulting firm with offices in Africa, USA, and India. They provide business and collaborative solutions including application development, integration, content management, and e-learning. They have over 15 years of experience working with over 200 professionals on projects for 46+ customers across 18+ countries.
The document summarizes an ISM for Design & Delivery panel discussion with experts from IBM Rational and Tivoli. The panelists were Don O’Toole, Harish Grama, Dave Lindquist, Neeraj Chandra, and Wing To. They discussed how integrating service design, delivery, and management across the lifecycle can enable service innovation through improved visibility, control, and automation. Rational and Tivoli products were highlighted as delivering integrations that bridge gaps in service delivery and enable innovation. Process, people, and technology integration were said to lead to real business service improvements through early problem detection, reduced costs, and performance optimization.
Aura Comnet is a company that facilitates turn-key solutions for telecommunication network services. They provide services from the planning and development phases through implementation, engineering, operation, and maintenance. Their strengths include facilitating complete solutions packages for telecom operators and equipment vendors. They aim to provide world-class quality services and resources through skilled employees and infrastructure. Their services include strategic planning, network implementation and management, and fully realizing telecom projects.
Offshore Software Development, Software Testing by CAMO SolutionsCAMO Solutions LLC
CAMO Solutions is a Microsoft gold certified partner established in 1997 that provides software development, testing, user experience design, and Microsoft Dynamics CRM services using an agile blended delivery model. It has development centers in New Jersey and Bangalore, India and focuses on outsourcing services for independent software vendors and system integrators. CAMO prides itself on agility, predictability, and quality in its engagements and delivers through dedicated engineering teams, fixed price development, or time and material models.
Case Study on Business Communication Training - by projectingITprojectingIT
This presentation covers excerpt of the "Training Assessment Report" prepared by projectingIT and sent to our client. The presentation covers following aspects
# Training Assessment Steps
1] Reaction and Planned Action
2] Learning
3] Course Content
4] Trainer Feedback
5] Participant Feedback
# Training Effectiveness Measurements
Visit our website to know more
Cloudpreneurs - McKinsey Reveals Fast Growth of Cloud AdoptionNewvewm
1) Cloud computing enables entrepreneurs and small businesses to inexpensively access robust computing resources through public cloud platforms like AWS.
2) Adoption of public cloud services is growing rapidly across industries, though security concerns and regulatory issues still present barriers for some organizations.
3) Incumbent technology vendors face pressure to transition to new "cloud purchase models" that focus on usage-based pricing and software-as-a-service offerings.
Evidence-based software process recovery uses data from software repositories to understand the actual development process used by a team. This allows comparison of the proposed process with the recovered process. Topic modeling of commits can identify developer topics like reliability, maintainability, and portability over time. Release patterns showing activity in source code, tests, builds and documentation near releases can also be recovered. Process recovery provides an objective view of the actual development process.
This document summarizes a keynote presentation about IBM's quality management products and strategies. The presentation discusses real challenges faced by development teams, real results achieved by IBM products in 2008, and real insights into improving quality management. It provides an overview of IBM's quality management portfolio and roadmap for continued enhancements.
This document discusses strategies for implementing user experience design policies to influence product development. It describes the evolution of Primax Electronics' UX team from initial usability testing to integrating interaction design and user-centered design processes earlier. To strengthen the UX team's strategic influence, the document proposes establishing UX governance, re-engineering the organization structure, and setting regular communication channels. It suggests leveraging existing product development processes and using a balanced scorecard to define and measure UX's value and return on investment. The changes aim to empower the UX team to directly impact products and evaluate performance using defined metrics.
This document discusses SNP T-Bone Data Provisioning and Masking software. It provides an introduction to SNP and test data management challenges. The SNP solution allows for flexible, intelligent data subsetting and masking to efficiently provision test data. It highlights features such as predefined scenarios, parallel processing, and field-level data masking.
NZ Government End User Computing Reference ArchitectureDoug Newdick
GEA-NZ Viewpoint: COE Reference Architecture describes the architectural building blocks to help agencies enable their future end user computing environment. In particular, an environment that meets the needs of their staff and assists them to deliver services to citizens and other stakeholders while investing taxpayers‟ money wisely. It describes a superset of capabilities for hardware devices and software environments intended to be operated by business users in government agencies.
The document describes different levels of maturity for architecture, design, and engineering processes from basic to advanced.
At the basic level, there is little documentation, inconsistent tools usage, and no clear processes. At the standard level, some roles and processes are defined but not fully integrated.
At the advanced level, there are dedicated teams following formalized and documented processes using integrated tools. Requirements, architecture, and development practices are consistently applied and improved upon through community contributions.
IHS Webcast - Navigating Today’s Global Regulatory Environment Tevia Arnold
This document summarizes a presentation on navigating today's global regulatory environment and best practices for managing compliance. The presentation discusses the top 10 regulations companies face, how the regulatory landscape is constantly evolving, and the broadening view of sustainability beyond just regulations. It emphasizes that compliance is key to business value drivers like time to market, cost, quality and innovation. A framework is provided for a systematic approach to compliance, covering areas like identifying requirements, capturing product data, analyzing compliance, and documenting the process. Options for tracking regulations include doing it internally, hiring consultants, or using a regulatory management system.
Introduction to Process Combustion Corporationlmduval
Process Combustion Corporation (PCC) is an experienced company that designs, manufactures, and supplies combustion, heat transfer, and pollution control systems. PCC has over 900 systems operating worldwide and employs experienced engineers. PCC aims to provide quality systems on time and on budget to meet emissions requirements for customers.
Leveraging Reusability and Traceability in Medical Device DevelopmentSeapine Software
Learn best practices for creating verifiable, traceable requirements. The presentation also includes information about how Seapine's TestTrack supports streamlining better processes, data capture, reusability, and traceability in the requirements phase and a Q&A session.
Integrating qualitative data analysis and interactive system designpbelouin
This document discusses using qualitative data analysis and social science methods to inform software development methodologies. It provides a brief history of software development methods, highlighting the shift from technology-focused to user-centered approaches. It proposes using tools from fields like sociology and conversation analysis to better understand human interactions in development. Specifically, it suggests applying discourse analysis, conversation analysis, and analyzing identity formation to a medical exam item banking project to directly influence its design.
The document discusses various topics related to system implementation and operation (system management). It covers activities involved in implementing a system like coding, testing, installation, documentation, training, support and maintenance. It describes different types of testing including unit testing, integration testing and system testing. It also discusses various approaches to system installation like direct, parallel, single location and phased installation. The document emphasizes the importance of system documentation, training users and providing ongoing support. It highlights reasons for system implementation failures and types of system maintenance.
Ravit Danino HP - Roles and Collaboration in AgileAgileSparks
Roles and collaboration have changed in Agile. Entire teams now work together throughout a sprint rather than having separate roles confined to specific phases. The whole team, including developers, business analysts, testers, and documentation specialists, collaborates continuously. They plan iterations together, provide feedback to each other, and ensure code meets quality standards through coffee and end-to-end testing. With Agile, customers also become key enablers by providing early feedback to help shape requirements and the product.
This document provides an overview of services offered by Integrated Technologies, Inc. related to surface finishing processes. It includes sections on master planning, facility design, project implementation, operations and maintenance support, opportunity assessments, asset management, production planning, water and wastewater management, and energy efficiency. Design drawings and diagrams are presented for surface finishing lines, tank sizing, phased renovation plans, and water recycling systems.
White Paper: Configuration and Build Management of Product Line Development w...Perforce
This document discusses configuration and build management strategies for product line development using Perforce. It defines key terms like components, assets, core assets, and custom assets. It recommends organizing Perforce depots by asset type and discusses branch strategies for controlling changes to assets. Branch hierarchies separate development, review, testing, and release activities. Configuration management policies govern activities under each project.
The document discusses design for reliability (DFR) topics including the need for DFR, the DFR process, terminology, Weibull plotting, system reliability, DFR testing, and accelerated testing. It provides details on the DFR process, common reliability terminology such as reliability, failure rate, mean time to failure, and the bathtub curve. It also explains the exponential distribution and Weibull plotting, which are important reliability analysis tools.
This document provides an overview of Linkroad's corporate portfolio. It establishes that Linkroad has been in business since 2005, is headquartered in Shanghai with additional presences, and creates business advantages for enterprises through proven IT implementations. It outlines Linkroad's vision to be a leading regional provider with IT consulting expertise, as well as its mission to maximize clients' effectiveness. The document also describes Linkroad's methodology, major alliances, differences compared to others, and thanks the reader.
ForchuTeck Consulting Inc is an international consulting firm with offices in Africa, USA, and India. They provide business and collaborative solutions including application development, integration, content management, and e-learning. They have over 15 years of experience working with over 200 professionals on projects for 46+ customers across 18+ countries.
The document summarizes an ISM for Design & Delivery panel discussion with experts from IBM Rational and Tivoli. The panelists were Don O’Toole, Harish Grama, Dave Lindquist, Neeraj Chandra, and Wing To. They discussed how integrating service design, delivery, and management across the lifecycle can enable service innovation through improved visibility, control, and automation. Rational and Tivoli products were highlighted as delivering integrations that bridge gaps in service delivery and enable innovation. Process, people, and technology integration were said to lead to real business service improvements through early problem detection, reduced costs, and performance optimization.
Aura Comnet is a company that facilitates turn-key solutions for telecommunication network services. They provide services from the planning and development phases through implementation, engineering, operation, and maintenance. Their strengths include facilitating complete solutions packages for telecom operators and equipment vendors. They aim to provide world-class quality services and resources through skilled employees and infrastructure. Their services include strategic planning, network implementation and management, and fully realizing telecom projects.
Offshore Software Development, Software Testing by CAMO SolutionsCAMO Solutions LLC
CAMO Solutions is a Microsoft gold certified partner established in 1997 that provides software development, testing, user experience design, and Microsoft Dynamics CRM services using an agile blended delivery model. It has development centers in New Jersey and Bangalore, India and focuses on outsourcing services for independent software vendors and system integrators. CAMO prides itself on agility, predictability, and quality in its engagements and delivers through dedicated engineering teams, fixed price development, or time and material models.
Case Study on Business Communication Training - by projectingITprojectingIT
This presentation covers excerpt of the "Training Assessment Report" prepared by projectingIT and sent to our client. The presentation covers following aspects
# Training Assessment Steps
1] Reaction and Planned Action
2] Learning
3] Course Content
4] Trainer Feedback
5] Participant Feedback
# Training Effectiveness Measurements
Visit our website to know more
Cloudpreneurs - McKinsey Reveals Fast Growth of Cloud AdoptionNewvewm
1) Cloud computing enables entrepreneurs and small businesses to inexpensively access robust computing resources through public cloud platforms like AWS.
2) Adoption of public cloud services is growing rapidly across industries, though security concerns and regulatory issues still present barriers for some organizations.
3) Incumbent technology vendors face pressure to transition to new "cloud purchase models" that focus on usage-based pricing and software-as-a-service offerings.
Evidence-based software process recovery uses data from software repositories to understand the actual development process used by a team. This allows comparison of the proposed process with the recovered process. Topic modeling of commits can identify developer topics like reliability, maintainability, and portability over time. Release patterns showing activity in source code, tests, builds and documentation near releases can also be recovered. Process recovery provides an objective view of the actual development process.
This document summarizes a keynote presentation about IBM's quality management products and strategies. The presentation discusses real challenges faced by development teams, real results achieved by IBM products in 2008, and real insights into improving quality management. It provides an overview of IBM's quality management portfolio and roadmap for continued enhancements.
This document discusses strategies for implementing user experience design policies to influence product development. It describes the evolution of Primax Electronics' UX team from initial usability testing to integrating interaction design and user-centered design processes earlier. To strengthen the UX team's strategic influence, the document proposes establishing UX governance, re-engineering the organization structure, and setting regular communication channels. It suggests leveraging existing product development processes and using a balanced scorecard to define and measure UX's value and return on investment. The changes aim to empower the UX team to directly impact products and evaluate performance using defined metrics.
This document discusses SNP T-Bone Data Provisioning and Masking software. It provides an introduction to SNP and test data management challenges. The SNP solution allows for flexible, intelligent data subsetting and masking to efficiently provision test data. It highlights features such as predefined scenarios, parallel processing, and field-level data masking.
NZ Government End User Computing Reference ArchitectureDoug Newdick
GEA-NZ Viewpoint: COE Reference Architecture describes the architectural building blocks to help agencies enable their future end user computing environment. In particular, an environment that meets the needs of their staff and assists them to deliver services to citizens and other stakeholders while investing taxpayers‟ money wisely. It describes a superset of capabilities for hardware devices and software environments intended to be operated by business users in government agencies.
The document describes different levels of maturity for architecture, design, and engineering processes from basic to advanced.
At the basic level, there is little documentation, inconsistent tools usage, and no clear processes. At the standard level, some roles and processes are defined but not fully integrated.
At the advanced level, there are dedicated teams following formalized and documented processes using integrated tools. Requirements, architecture, and development practices are consistently applied and improved upon through community contributions.
IHS Webcast - Navigating Today’s Global Regulatory Environment Tevia Arnold
This document summarizes a presentation on navigating today's global regulatory environment and best practices for managing compliance. The presentation discusses the top 10 regulations companies face, how the regulatory landscape is constantly evolving, and the broadening view of sustainability beyond just regulations. It emphasizes that compliance is key to business value drivers like time to market, cost, quality and innovation. A framework is provided for a systematic approach to compliance, covering areas like identifying requirements, capturing product data, analyzing compliance, and documenting the process. Options for tracking regulations include doing it internally, hiring consultants, or using a regulatory management system.
Introduction to Process Combustion Corporationlmduval
Process Combustion Corporation (PCC) is an experienced company that designs, manufactures, and supplies combustion, heat transfer, and pollution control systems. PCC has over 900 systems operating worldwide and employs experienced engineers. PCC aims to provide quality systems on time and on budget to meet emissions requirements for customers.
Leveraging Reusability and Traceability in Medical Device DevelopmentSeapine Software
Learn best practices for creating verifiable, traceable requirements. The presentation also includes information about how Seapine's TestTrack supports streamlining better processes, data capture, reusability, and traceability in the requirements phase and a Q&A session.
Integrating qualitative data analysis and interactive system designpbelouin
This document discusses using qualitative data analysis and social science methods to inform software development methodologies. It provides a brief history of software development methods, highlighting the shift from technology-focused to user-centered approaches. It proposes using tools from fields like sociology and conversation analysis to better understand human interactions in development. Specifically, it suggests applying discourse analysis, conversation analysis, and analyzing identity formation to a medical exam item banking project to directly influence its design.
The document discusses various topics related to system implementation and operation (system management). It covers activities involved in implementing a system like coding, testing, installation, documentation, training, support and maintenance. It describes different types of testing including unit testing, integration testing and system testing. It also discusses various approaches to system installation like direct, parallel, single location and phased installation. The document emphasizes the importance of system documentation, training users and providing ongoing support. It highlights reasons for system implementation failures and types of system maintenance.
Get the detailed information about the system and software development file cycle. Waterfoll model and evolution model are most famouse software development methods.
For more such innovative content on management studies, join WeSchool PGDM-DLP Program: http://bit.ly/welingkarshybridDlp
Join us on Facebook: http://www.facebook.com/welearnindia
Follow us on Twitter: https://twitter.com/WeLearnIndia
Read our latest blog at: http://welearnindia.wordpress.com
Subscribe to our Slideshare Channel: http://www.slideshare.net/welingkarDLP
Software Development Methodologies-HSM, SSADMNana Sarpong
SSADM is a structured methodology for analyzing and designing computer systems. It is a waterfall approach with 5 main stages: 1) Feasibility study, 2) Requirements analysis, 3) Requirements specification, 4) Logical system specification, and 5) Physical system design. Each stage produces specific outputs and further refines the system requirements and design. SSADM provides standards and guidelines for documentation, techniques, and project structure.
Business process analysis and design – importance of having a common language...Alan McSweeney
Provide an introduction to process design/specification and the potential benefits of using a visual process design approach such as BPMN to enable business and IT users understand how process should operate
The document discusses the system development life cycle (SDLC) as a systematic method for organizations to implement change through new technologies. It describes the four phases of SDLC - planning, analysis, design, and implementation. The planning phase involves feasibility studies to understand economic, organizational, and technical factors. The analysis phase breaks down the problem and gathers stakeholder requirements. The design phase decides if the system will be internal or outsourced. The implementation phase builds, tests, trains users on, and evaluates the new system. SDLC provides a systematic strategy for large development projects involving many stakeholders.
This is the presentation that I presented with Ruth Willenborg that provides a review of IBM's DevOps strategy as well as the roadmap for recently developed capabilities and future directions.
This document discusses DevOps and outlines some challenges and solutions. It reviews cultural challenges between developers and operators, and outlines DevOps principles of developing against production-like systems, iterative deployments using reliable processes, and continuous monitoring. It then summarizes strategies around standardizing environments, planning and tracking changes collaboratively, managing changes through automation, and providing feedback.
The document discusses approaches to software deployments, noting that traditional organizations deploy software 4 times per year while newer organizations deploy software 15 times per day. It advocates automating the entire software delivery pipeline including deployments to reduce risks and costs, by applying the principle of "if it hurts, do it often" through continuous integration, delivery, and deployment.
This document discusses software process and software engineering process models. It defines software process as a framework for tasks required to build high-quality software. A software process model provides a development strategy and defines key activities, tasks, deliverables, and milestones. Several process models are described including linear sequential, prototyping, RAD (rapid application development), and incremental models. The document emphasizes that software engineering relies on establishing sound processes, methods, and tools to efficiently develop reliable software.
The document provides an introduction to software engineering and process models. It defines key terms like software, software engineering, and characteristics of software. It then discusses software engineering as a layered technology with process, method, and tools layers. The document also explains the software process as consisting of five generic activities - communication, planning, modeling, construction, and deployment. It provides examples and definitions for each activity. Finally, it asks exam questions related to defining software engineering and explaining it as a layered technology.
This document discusses engineering innovation and project delivery using Agile, Lean, and Envision principles. It summarizes Envision as a construction management tool that optimizes projects using Agile and Lean principles through features like time tracking, document management, 4D modeling, and business intelligence reporting. Implementing Envision can provide benefits like reduced costs, improved safety and transparency, and increased field productivity for owners, contractors, and field supervisors.
The document discusses software development processes and methodologies. It provides definitions of key concepts like software process and project management methodology. It then summarizes various software development models and processes like the Rational Unified Process, spiral development, incremental development, and the unified software development process. The unified process classifies iterations into inception, elaboration, construction and transition iterations. It also discusses the six models or views used in the unified process - use case model, analysis model, design model, implementation model, test model and deployment model.
الإتحــــــــــــــــــــــاد الوطني للشبــــــــــاب السوداني
المؤسسة الشبابية لتقانة المعلومات
ورشة صناعة البرمجيات في السودان
الورقة الاولى :
مناهج التعليم وصناعة البرمجيات في السودان
أسامة عبدالوهاب ريس
Adaptive software development processes epitomized by Agile methodologies are based on continual improvement – incremental changes that emerge as teams iterate and learn about the product they are developing. This appears to conflict with the world of the program office, responsible for defining the software development lifecycle (SDLC), in which a stable and repeatable development process with well-defined ownership and controls is a common objective. Using recent examples in which agile methods have been successfully introduced into large organizations with existing SDLCs, we consider the difficulties of creating a verifiable process when the process itself is continually being modified, and look at how software development can be managed and controlled without stifling the benefits of adaptive software development processes.
The document discusses software engineering and the software development life cycle (SDLC). It defines key terms like system software, application software, and network-based software. It describes the characteristics of well-engineered software and lists the typical phases in the SDLC: analysis, design, coding, testing, implementation, maintenance, and re-engineering. The advantages of following the SDLC are also highlighted.
The document provides an introduction to software engineering and discusses various topics including:
- The definition of software and how it is different from hardware.
- Common software development process models like waterfall, incremental, RAD, and evolutionary models.
- The differences between product and process in software engineering.
- Common software engineering practices and myths in management, customer, and practitioner perspectives.
It serves as an introductory lecture covering fundamental concepts in software engineering.
Dan Webster has over 30 years of experience in software quality assurance, with a focus on testing complex applications on various operating systems. He is proficient in many programming languages, testing tools, and databases. His previous role was as a Senior Quality Assurance Engineer at Mentor Graphics, where he developed and executed test plans, implemented automated testing, and ensured quality goals were met for several projects. He has extensive leadership experience managing teams and transitioning projects.
Dan Webster has over 25 years of experience in software quality assurance, with a focus on testing complex applications. He has extensive skills in programming languages, operating systems, and testing tools. His background includes managing quality assurance teams and transitioning projects internationally. He is skilled at automating test suites, collaborating with developers, and ensuring software meets quality goals.
Presentation SIG, Green IT Amsterdam workshop Green Software 12 apr 2011, Gre...Jaak Vlasveld
This presentation discusses green software and energy efficiency at the application level. It provides background on the Software Improvement Group, which analyzes over 90 systems annually and provides management advisory services and software quality certification. The presentation introduces a taxonomy of green aspects of software, including computational efficiency, algorithmic efficiency, data structures, and functional necessity. It discusses approaches to optimizing some of these aspects, like energy-aware coding of algorithms and data structures. The presentation also notes challenges like the currently energy-oblivious nature of most software development.
An Introduction to Software Performance EngineeringCorrelsense
Software performance engineering is becoming increasingly important to businesses as they look to improve the non-functional performance of applications and get more out of IT investments. By leveraging performance engineering techniques, IT professionals can be indispensable in building and optimizing scalable systems. This
introductory course will teach you the essentials of software
performance engineering including :
• The performance challenges faced by Enterprise IT today
• What is software performance engineering (SPE)?
• Best practices for building scalable software systems
• The approaches to integrating SPE into IT project lifecycles
• Common frameworks for measuring application performance and service levels
• The impact of SPE on software developers, testers, capacity planes,
and other IT professionals
• Case studies from the finance, retail, and insurance industries
Instructor: Walter Kuketz, SVP and CTO, Collaborative Consulting
This training is sponsored by Correlsense, Collaborative Consulting,
and New Horizons
C S S L P & OWASP 2010 & Web Goat By Surachai.C Publish PresentationWon Ju Jub
The document provides information about Surachai Chatchalermpun's qualifications and an upcoming presentation on secure software development. It includes:
1) Surachai Chatchalermpun's credentials which include a Master's Degree in Management Information Systems and certifications as a Certified Secure Software Lifecycle Professional (CSSLP) and EC-Council Certified Security Analyst (ECSA).
2) An agenda for the presentation that will discuss challenges in application security today, provide an overview of the CSSLP and Open Web Application Security Project (OWASP), demonstrate the WebGoat security training tool, and include a WebGoat lesson.
3) A brief speaker profile for Surachai Ch
Software engineering is the systematic application of engineering principles to software development and maintenance. It involves requirements analysis, design, development, testing, documentation, and maintenance following a systematic process. Software engineering aims to provide cost-effective solutions to software problems and is the branch of engineering concerned with developing software solutions.
This document discusses software engineering processes. It defines a software process as a series of predictable steps that leads to timely, high-quality products. It notes that common activities across processes include planning, modeling, analysis, design, construction, testing, and deployment. Processes must be adapted based on project characteristics and allow for flexibility. Frameworks like CMMI, PSP, and TSP provide templates for processes. Processes should be assessed against criteria to ensure quality and allow for continuous improvement. The overall goal of any software process is to deliver high quality products on time.
1. Software Design Motivation
Methodologies
Comp 6471
Comp 6471
COMP 6471/4 NN
Steven Winikoff …with proper design, the features come
cheaply. This approach is arduous, but
smw@alcor.concordia.ca continues to succeed.
H-966-2 - Dennis Ritchie
514-848-2424, ext. 7619
Page 7
What This Course is About Software Engineering
ca. 1968: Reasons for the software crisis were determined.
Comp 6471
simple questions: Software development should be treated as an engineering
activity and not as an ad-hoc activity => software development
should be a systematical activity.
What should go into a given piece of
software? Definition provided by the IEEE:
Software Engineering is the systematic approach to
development , maintenance, organization of software
How do you put it there? systems.
Starting point of the software crisis.
...with complex answers
Acknowledgement: These slides are based on work originally created by
Dr. Juergen Rilling, CSE, Concordia
Comp6471 Software Design Methodologies
2. Page 8 Page 9
Goals of Software Engineering Software Life Cycle
The phases of a software development cycle.
Improve the productivity of the programming/development process Analysis: Software Engineering
Improve the comprehension of the developed software system Specification
Improve the maintainability of the systems 70
Improve the quality of the software system (software product)
Design 60
50
Improve the “quality” of the software system. Implementation
40 Without SE
- Reliability
Effort
Testing 30 Applying SE
- Efficiency (Speed, resource usage)
Delivery/Maintenance 20
- User-friendly (user acceptance)
10
0
General goal:
n
n
gn
g
s
io
t io
in
si
Produce software which is useful for people
si
at
st
y
ta
De
al
Te
f ic
en
An
i
ec
em
Sp
pl
Im
Software Life Cycle Phase
Comp6471 Software Design Methodologies Comp6471 Software Design Methodologies
Page 10 Page 11
Software Life Cycle Goals of Software Engineering
Products: External deliverables, internal products; software products: final
code, test drivers
Feasibility study – WHY? Cost benefit analysis (is Paper documents: external: user manual, installation guide;
it worth doing the project) Internal: requirements document, specification document,
Requirements analysis + specification: WHAT? design document, test plan
What should the software do, produce a document.
Design - How? How should the software do it.
Architectural design (overall structures + organization Processes: How the software is created, how its quality is evaluated and
of objects/modules, choice of data structures, etc. ensured
Coding/Implementation: Realize ! components. Tools: CASE tools, editors, project management tools
Code modules, prodcuts: software,
Testing: Realize ! Test individual modules, test People: Technical, social and managerial skills
whether modules work together, test system as a
whole, document test results. Principles Providing permanency, guidelines and maturity in the software
Delivery and maintenance: Evolve! development process.
Comp6471 Software Design Methodologies Comp6471 Software Design Methodologies
3. Page 12 Page 13
Skills of a Software Engineer Skills of a Software Engineer
Programming: Design
data structures and algorithms – be familiar with several approaches
programming languages – be flexible and open to different application domains
tools: compilers, debuggers, editors
– be able to shift between several level of abstraction
Communication: – application domain jargon
spoken, written, presentations
teamwork
– requirements and specification: declarative model
with external people (customers) – architectural design, high-level operational model
– detailed coding
Comp6471 Software Design Methodologies Comp6471 Software Design Methodologies
Page 14 Page 15
Software Lifecycle Models
A lifecycle model provides a fixed generic
framework that can be tailored to a specific project.
Project specific parameters will include:
Definition. size (person-years),
A (software/system) lifecycle model is a budget,
description of the sequence of activities carried duration.
out in a software engineering project, and the
relative order of these activities.
project plan = lifecycle model + project parameters
Comp6471 Software Design Methodologies Comp6471 Software Design Methodologies
4. Page 16 Page 17
There are many different lifecycle models to choose By changing the lifecycle model, we can
from, e.g:
improve and/or trade off:
waterfall,
code-and-fix development speed (time to market)
spiral product quality
rapid prototyping
unified process (UP)
project visibility
agile methods, extreme programming (XP) administrative overhead
COTS … risk exposure
customer relations, etc, etc.
but many are minor variations on a smaller number of
basic models.
Comp6471 Software Design Methodologies Comp6471 Software Design Methodologies
Page 18 Page 19
Normally, a lifecycle model covers the entire Note that we can sometimes combine
lifetime of a product. lifecycle models
e.g. waterfall inside evolutionary – onboard
From the birth of an idea to the final shuttle software
deinstallation of the last release
We can also change lifecycle model between
i.e. The three main phases: releases as a product matures,
design,
build, e.g. rapid prototyping → waterfall
maintain.
Comp6471 Software Design Methodologies Comp6471 Software Design Methodologies
5. Page 20 Page 21
phase
User Requirements output User Requirements Document
The Waterfall Model
Software Requirements Software Requirements
Document
• Classic lifecycle model – widely known,
understood and (commonly?) used. Architecture Design Architectural Design
Document
• In some respect, waterfall is the "common
”Swimming
sense" approach upstream”
Detailed design & Coding Detailed
Design
(Introduced by Royce 1970) & Code
The Waterfall Testing
Lifecycle Workflow
Delivery
Time
Comp6471 Software Design Methodologies Comp6471 Software Design Methodologies
Page 22 Page 23
Advantages
Disadvantages I
1. Easy to understand and implement.
2. Widely used and known (in theory!)
● Idealized, doesn’t match reality well.
3. Reinforces good habits: define-before-design, ● Doesn’t reflect iterative nature of exploratory
design-before-code development.
4. Identifies deliverables and milestones ● Unrealistic to expect accurate requirements so early
5. Document driven, URD, SRD, … etc. Published in project
documentation standards, e.g. PSS-05.
● Software is delivered late in project, delays
6. Works well on mature products and weak teams.
discovery of serious errors.
Comp6471 Software Design Methodologies Comp6471 Software Design Methodologies
6. Page 24 Page 25
Disadvantages II Code-and-Fix
● Difficult to integrate risk management This model starts with an informal general
● Difficult and expensive to make changes to product idea and just develops code until a
documents, ”swimming upstream”. product is ”ready” (or money or time runs out).
● Significant administrative overhead, costly for
Work is in random order.
small teams and projects.
Corresponds with no plan!
Comp6471 Software Design Methodologies Comp6471 Software Design Methodologies
Page 26 Page 27
Advantages Disadvantages
● No administrative overhead 1. Dangerous!
● Signs of progress (code) early. ● No visibility/control
● Low expertise, anyone can use it!
● No resource planning
● Useful for small “proof of concept” projects,
● No deadlines
● Mistakes hard to detect/correct
e.g. as part of risk reduction.
2. Impossible for large projects,
communication breakdown, chaos.
Comp6471 Software Design Methodologies Comp6471 Software Design Methodologies
7. Page 28 Page 29
This loop approach gives rise to structured
Spiral Model
iterative lifecycle models.
Since end-user requirements are hard to
obtain/define, it is natural to develop software In 1988 Boehm developed the spiral model as
in an experimental way: e.g. an iterative model which includes risk
analysis and risk management.
1. Build some software
2. See if it meets customer requirements Key idea: on each iteration identify and solve
3. If no goto 1 else stop. the sub-problems with the highest risk.
Comp6471 Software Design Methodologies Comp6471 Software Design Methodologies
Page 30 Page 31
Cumulative cost
Determine objectives, Evaluate alternatives,
alternatives & constraints Identify & resolve risks
Each cycle follows a waterfall model by:
1. Determining objectives
2. Specifying constraints
Prototypes Operational
Review & Start P1 P2 P3 Prototype 3. Generating alternatives
commitment Requirements Concept
Design, 4. Identifying risks
plan Detailed design
Of Operation
Development
Validation 5. Resolving risks
& Verification
plan Requirements 6. Developing next-level product
validation Coding
Integration & 7. Planning next cycle
Test plan Unit & Integration
Testing
End Acceptance
Plan next phase Testing Develop & verify
next-level product
Comp6471 Software Design Methodologies Comp6471 Software Design Methodologies
8. Page 32 Page 33
Advantages Disadvantages
1. Realism: the model accurately reflects the Needs technical expertise in risk analysis to really
iterative nature of software development on work
projects with unclear requirements Model is poorly understood by non-technical
2. Flexible: incorporates the advantages of the management, hence not so widely used
waterfall and rapid prototyping methods Complicated model, needs competent professional
management. High administrative overhead.
3. Comprehensive model decreases risk
4. Good project visibility.
Comp6471 Software Design Methodologies Comp6471 Software Design Methodologies
Page 34 Page 35
Requirements Capture
Rapid Prototyping
Iterate
Quick Design
Key idea: Customers are non-technical and
usually don’t know what they want/can have.
Build Prototype
Rapid prototyping emphasises requirements
Customer Evaluation of
analysis and validation, also called: Prototype
customer oriented development,
evolutionary prototyping
The Rapid Engineer Final
Prototype Workflow Product
Comp6471 Software Design Methodologies Comp6471 Software Design Methodologies
9. Page 36 Page 37
Advantages Disadvantages I
1. Reduces risk of incorrect user requirements 1. An unstable/badly implemented prototype
2. Good where requirements are often becomes the final product.
changing/uncommitted 2. Requires extensive customer collaboration
3. Regular visible progress aids management – Costs customers money
4. Supports early product marketing – Needs committed customers
– Difficult to finish if customer withdraws
– May be too customer specific, no broad market
Comp6471 Software Design Methodologies Comp6471 Software Design Methodologies
Page 38 Page 39
Disadvantages II Agile (XP) Manifesto
3. Difficult to know how long project will last XP = Extreme Programming emphasizes:
4. Easy to fall back into code-and-fix without Individuals and interactions
proper requirements analysis, design, – Over processes and tools
customer evaluation and feedback. Working software
– Over documentation
Customer collaboration
– Over contract negotiation
Responding to change
– Over following a plan
Comp6471 Software Design Methodologies Comp6471 Software Design Methodologies
10. Page 40 Page 41
Agile Principles (Summary) XP Practices (Summary)
Continuous delivery of software Programming in pairs
Continuous collaboration with customer Test driven development
Continuous update according to changes Continuous planning, change , delivery
Value participants and their interaction Shared project metaphors, coding standards and
Simplicity in code, satisfy the spec ownership of code
No overtime! (Yeah right!)
Comp6471 Software Design Methodologies Comp6471 Software Design Methodologies
Page 42 Page 43
Advantages Disadvantages
Lightweight methods suit small-medium size Difficult to scale up to large projects where
projects documentation is essential
Produces good team cohesion Needs experience and skill if not to degenerate
Emphasizes final product into code-and-fix
Iterative Programming pairs is costly
Test-based approach to requirements and quality Test case construction is a difficult and specialized
assurance skill.
Comp6471 Software Design Methodologies Comp6471 Software Design Methodologies
11. Page 44 Page 45
Advantages
COTS Fast, cheap solution
May give all the basic functionality
COTS = Commercial Off-The-Shelf software Well defined project, easy to run
Engineer together a solution from existing
commercial software packages using minimal Disadvantages
software "glue". Limited functionality
E.g. using databases, spread sheets, word Licensing problems, freeware, shareware, etc.
proccessors, graphics software, web browsers,
License fees, maintainance fees, upgrade
etc.
compatibility problems
Comp6471 Software Design Methodologies Comp6471 Software Design Methodologies
Page 47
Unified Process (UP)
Booch, Jacobson, Rumbaugh 1999.
Comp 6471
Iterative Development and the Lifetime of a software product in cycles:
Unified Process
– Birth, childhood, adulthood, old-age, death.
Product maturity stages
Each cycle has phases, culminating in a new
release (c.f. Spiral model)
Acknowledgement: These slides for the Iterative Development process were
originally created by Dr. Constantinos Constantinides, CSE, Concordia
Comp6471 Software Design Methodologies
12. Page 48 Page 49
Iterative Development Iterative Development
[iteration N]
Requirements – Analysis - Design- Implementation - Testing
The iterative lifecycle is based on the
successive enlargement and refinement of a
system though multiple iterations with
feedback and adaptation. [iteration N+1]
The system grows incrementally over time, Requirements – Analysis - Design- Implementation - Testing
iteration by iteration.
The system may not be eligible for production Feedback from iteration N leads to
refinement and adaptation of the The system grows
deployment until after many iterations. requirements and design in iteration incrementally.
N+1.
Comp6471 Software Design Methodologies Comp6471 Software Design Methodologies
Page 50 Page 51
Iterative Development Embracing Change
The output of an iteration is not an Stakeholders usually have changing
experimental prototype but a production requirements.
subset of the final system. Each iteration involves choosing a small
Each iteration tackles new requirements and subset of the requirements and quickly
incrementally extends the system. design, implement and testing them.
An iteration may occasionally revisit existing This leads to rapid feedback, and an
software and improve it. opportunity to modify or adapt understanding
of the requirements or design.
Comp6471 Software Design Methodologies Comp6471 Software Design Methodologies
13. Page 52 Page 53
Iteration Length and Timeboxing Phases of the Unified Process
Inception Elaboration Construction Transition
time
The UP recommends short iteration lengths
to allow for rapid feedback and adaptation. A UP project organizes the work and iterations
Long iterations increase project risk. across four major phases:
Iterations are fixed in length (timeboxed).If – Inception - Define the scope of project.
meeting deadline seems to be difficult, then – Elaboration - Plan project, specify features,
remove tasks or requirements from the baseline architecture.
iteration and include them in a future iteration.
The UP recommends that an iteration should – Construction - Build the product
be between two and six weeks in duration. – Transition - Transition the product into end
user community
Comp6471 Software Design Methodologies Comp6471 Software Design Methodologies
Page 54 Page 55
Iterations and Milestones The UP Disciplines
Phases
Process Disciplines Inception Elaboration Construction Transition
Inception Elaboration Construction Transition
Business Modeling
Requirements
Preliminary Iter. #1 Iter. #2
Iteration Analysis & Design
Implementation
Milestone Release Final production Test
release
Deployment
Each phase and iteration has some risk mitigation focus, and Supporting Disciplines
concludes with a well-defined milestone. Configuration Mgmt
The milestone review provides a point in time to assess how Management
well key goals have been met and whether the project needs to
be restructured in any way to proceed. Environment
The end of each iteration is a minor release, a stable executable Preliminary
Iteration(s)
Iter.
#1
Iter.
#2
Iter.
#n
Iter. Iter.
#n+1 #n+2
Iter.
#m
Iter.
#m+1
subset of the final product.
Iterations
Comp6471 Software Design Methodologies Comp6471 Software Design Methodologies
14. Page 56 Page 57
The UP Disciplines In an iteration you
walk through all The UP Disciplines Focus of this
course.
Phases disciplines. Phases
Process Disciplines Inception Elaboration Construction Transition Process Disciplines Inception Elaboration Construction Transition
Business Modeling Business Modeling
Requirements Requirements
Analysis & Design Analysis & Design
Implementation Implementation
Test Test
Deployment Deployment
Supporting Disciplines Supporting Disciplines
Configuration Mgmt Configuration Mgmt
Management Management
Environment Environment
Preliminary Iter. Iter. Iter. Iter. Iter. Iter. Iter. Preliminary Iter. Iter. Iter. Iter. Iter. Iter. Iter.
Iteration(s) #1 #2 #n #n+1 #n+2 #m #m+1 Iteration(s) #1 #2 #n #n+1 #n+2 #m #m+1
Iterations Iterations
Comp6471 Software Design Methodologies Comp6471 Software Design Methodologies
Page 58 Page 59
Advantages of an
Disciplines and Phases
Iterative Process
Although an iteration includes work in most
Reduce risks
disciplines, the relative effort and emphasis change – Risks are identified early, progress is easier to see.
over time. Get a robust architecture
– Early iterations tend to apply greater emphasis to – Architecture can be assessed and improve early.
requirements and design, and later ones less so. Handle evolving requirements
– Figure illustrations are suggestive, not literal. – Users provide feedback to operational systems.
– Responding to feedback is an incremental change.
Note that activities and artifacts are optional (except Allow for changes
code!) – System can adapt to problems
– Developers select those artifacts that address their particular
needs.
Attain early learning
– Everyone obtains an understanding of the different workflows
early on.
Comp6471 Software Design Methodologies Comp6471 Software Design Methodologies
15. Page 60 Page 61
Unified Process
Product UML class diagram!
Management Software Lifecycle
Use Case Model
Environment * * releases specified by
by
ed
Workflow Cycle
deployed by
lis
a
Analysis Model
re
Requirements
im
Inception
ple
4
me
Design Design Model
n te
Phase Elaboration
db
Deployment Model verified by
y
Implementation
Construction
*
Implementation Model
Assessment Iteration
Transition All models are interdepedent
but this only shown for use Test Model
Deployment *
case model
Artifact
Comp6471 Software Design Methodologies Comp6471 Software Design Methodologies
Page 62 Page 63
What artifacts may start in
Inception
inception?
A number of questions need to be explored: Vision and business case
– What is the vision and business case for this project? – Describes high-level goals and constraints.
– Is it feasible? Use Case model
– Buy and/or build? – Describes functional requirements and related non-functional
– Rough estimate of cost. requirements.
– Should we proceed or stop?
Supplementary specification
– Describes other requirements
Glossary
The intent is to establish some initial common vision – Key domain terminology
for the objectives of the project, determine if it is
feasible and decide if it is worth some serious
Risk list and Risk Management Plan
– Describes business, technical, resource and schedule risks
investigation in elaboration. and ideas for their mitigation or response.
Comp6471 Software Design Methodologies Comp6471 Software Design Methodologies
16. Page 64 Page 65
What artifacts may start in Requirements Engineering:
inception? An Overview
Prototypes and proof-of-concepts Basic goal: To understand the problem as
Iteration plan perceived by the user.
– Describes what to do in the first elaboration iteration
Phase Plan & Software development Plan
Activities of RE are problem oriented.
– Guess for elaboration phase duration. Tools, people, – Focus on what, not how
education and other resources. – Don’t cloud the RD with unnecessary detail
Development Case – Don’t pre-constrain design.
– Description of the customized UP steps and artifacts for this
project. After RE is done, do software design:
Artifacts will be partially completed in this phase and – solution oriented
will be refined in later iterations.
– how to implement the what
Comp6471 Software Design Methodologies Comp6471 Software Design Methodologies
Page 66 Page 67
Requirements Engineering: Requirements Engineering
An Overview
The process of determining and establishing
Key to RE is good communication between the precise expectations of the customer
customer and developers. about the proposed software system.
Work from Requirements Document as guide.
Comp6471 Software Design Methodologies Comp6471 Software Design Methodologies
17. Page 68 Page 69
The Two Kinds of Requirements The Purpose of RE
Raw user requirements are often:
Functional: The precise tasks or functions – vague
the system is to perform. – contradictory
– e.g., details of a flight reservation system – impractical or impossible to implement
– overly concrete
Non-functional: Usually, a constraint of – just plain wrong
some kind on the system or its construction The purpose of RE is to get a usable set of
– e.g., expected performance and memory requirements from which the system may be
requirements, process model used, designed and implemented, with minimal
implementation language and platform, surprises.
compatibility with other tools, deadlines, ...
Comp6471 Software Design Methodologies Comp6471 Software Design Methodologies
Page 70 Page 71
Requirements
Analysis
leads to The RE Process
The Requirements Document
Requirements
produces
Definition
The official statement of what is required of
System Requirements the system developers.
Models Specification
– Includes system models, requirements definition,
and requirements specification.
Requirements – Not a design document.
Software
Definition
Specification – States functional and non-functional requirements.
included in
Requirements
Specification Serves as a reference document for
maintenance.
Requirements
Software
Document
Specification
Comp6471 Software Design Methodologies Comp6471 Software Design Methodologies
18. Page 72 Page 73
Requirements Document The Requirements Document
“Requirements” Should State ...
Foreseen problems:
– “won’t support Win-3.x apps”
Should be easy to change as requirements Expected evolution:
evolve. – “will port to MacOS in next version”
Must be kept up-to-date as system changes. Response to unexpected events/usage:
– “if input data in old format, will auto-convert”
Comp6471 Software Design Methodologies Comp6471 Software Design Methodologies
Page 74 Page 75
Requirements Document A Story ...
Structure
Dear Mr. Architect,
Introduction (describe need for system)
Functional Requirements Please design and build me a house. I am not quite sure of what
I need, so you should use your discretion.
Non-Functional Requirements
System Evolution (describe anticipated changes) My house should have between two and forty-five bedrooms.
Just make sure the plans are such that bedrooms can be easily
Glossary (technical and/or new jargon) added or deleted. When you bring the blueprints to me, I will
Appendices make the final decision of what I want. Also bring me the cost
breakdown for each configuration so that I can arbitrarily pick
Index one.
Comp6471 Software Design Methodologies Comp6471 Software Design Methodologies
19. Page 76 Page 77
A Story … (Cont’d) A Story … (Cont’d)
Please take care that modern design practices and the latest
Keep in mind that the house I ultimately choose must cost materials are used in construction of the house, as I want it to be a
less than the one I am currently living in. Make sure, showplace for the most up-to-date ideas and methods. Be alerted,
however, that you correct all the deficiencies that exist in my however, that kitchen should be designed to accommodate, among
current house (the floor of my kitchen vibrates when I walk other things, my 1952 Gibson refrigerator.
across it, and the walls don’t have nearly enough insulation in
them). To insure that you are building the correct house for our entire
family, make certain that you contact each of our children, and
As you design, also keep in mind that I want to keep yearly also our in-laws. My mother-in-law will have very strong feelings
maintenance costs as low as possible. This should mean the about how the house should be designed, since she visits us at
incorporation of extra-cost features like aluminum, vinyl, or least once a year. Make sure that you weigh all of these options
carefully and come to the right decision. I, however, retain the
composite siding. (If you choose not to specify aluminum, be right to overrule any choices that you make.
prepared to explain your decision in detail.)
Comp6471 Software Design Methodologies Comp6471 Software Design Methodologies
Page 78 Page 79
A Story … (Cont’d) A Story … (Cont’d)
While you are designing this house specifically for me, keep in mind
that sooner or later I will have to sell it to someone else. It therefore
Please don't bother me with small details right now. Your job is to should have appeal to a wide variety of potential buyers. Please
develop the overall plans for the house: get the big picture. At this make sure before you finalize the plans that there is a consensus of
time, for example, it is not appropriate to be choosing the color of the population in my area that they like the features this house has.
the carpet. However, keep in mind that my wife likes blue.
I advise you to run up and look at my neighbor's house he
Also, do not worry at this time about acquiring the resources to constructed last year. We like it a great deal. It has many features
build the house itself. Your first priority is to develop detailed that we would also like in our new home, particularly the 75-foot
plans and specifications. Once I approve these plans, however, I swimming pool. With careful engineering, I believe that you can
would expect the house to be under roof within 48 hours. design this into our new house without impacting the final cost.
Comp6471 Software Design Methodologies Comp6471 Software Design Methodologies
20. Page 80 Page 81
A Story … (Cont’d) A Story … (Cont’d)
Please prepare a complete set of blueprints. It is not necessary at P.S. My wife has just told me that she disagrees with many on the
this time to do the real design, since they will be used only for instructions I’ve given you in this letter. As architect it is
construction bids. Be advised, however, that you will be held your responsibility to resolve these issues. I have tried in the
accountable for any increase of construction costs as a result of past and have been unable to accomplish this. If you can’t handle
later design changes. this, I will have to find a new architect.
You must be thrilled to be working on as an interesting project as P.P.S. Perhaps what I need is not a house at all, but a travel trailer.
this! To be able to use the latest techniques and materials and to be Please advise me as soon as possible if that is the case.
given such freedom in your designs is something that can't happen
very often. Contact me as soon as possible with your complete
ideas and plans. (originally posted to the rec.humor.funny newsgroup
in January 1993 -- but some things never change!)
Comp6471 Software Design Methodologies Comp6471 Software Design Methodologies
Page 82 Page 83
RE Summary RE Summary (Cont’d)
RE focuses on determining what the The customer often doesn’t have good grasp
customer wants, and not how it will be of what he wants.
implemented. Errors made at the requirements stage are
RE is hard to get correct; it requires good very expensive to fix later.
communication skills. – You might well implement the stated requirements
Requirements may change over time. correctly, but it won’t be the system the customer
really wants.
RE requires iteration.
Comp6471 Software Design Methodologies Comp6471 Software Design Methodologies
21. Page 84 Page 85
Object-Oriented Analysis Back to Software Design ...
An investigation of the problem (rather than
how a solution is defined)
During OO analysis, there is an emphasis on
finding and describing the objects (or
concepts) in the problem domain.
– For example, concepts in a Library Information
System include Book and Library.
Comp6471 Software Design Methodologies Comp6471 Software Design Methodologies
Page 86 Page 87
Software
architecture
Subsystem
decomposition
High-Level Top-Down vs Bottom-Up Design
(abstract)
Subsystem
dependencies design Top-down Design:
Subsystem – Start with a coarsely-grained view of system, and
interfaces
repeatedly refine components until you have
module or class concrete sub-components.
decomposition
module or class
dependencies
Bottom-up Design:
– Start with existing components and “glue” them
module or class
interfaces
Low-Level together to get what you want.
(detailed)
Data structures
design
Algorithms
Comp6471 Software Design Methodologies Comp6471 Software Design Methodologies
22. Page 88 Page 89
Top-Down vs Bottom-Up Design
(Cont’d) Design Quality
Software design “quality”, as with other ideas
Top-down is the “ideal” of most design on quality, is an elusive concept: it depends
methods, but it’s rarely followed absolutely: on priorities of your company and the
– some branches of development are expanded customers:
before others are even started – fastest to implement
– doesn’t adequately account for reuse of existing – easiest to implement
components: – easiest to maintain, “evolve”, port
COTS products, libraries, previous versions of the same
system. – most efficient/reliable/robust end-product.
Comp6471 Software Design Methodologies Comp6471 Software Design Methodologies
Page 90 Page 91
Discussion Object-Oriented Design
What does “quality” mean to: Emphasizes a conceptual solution that fulfils
– IBM? the requirements.
– Microsoft? Need to define software objects and how they
– Mozilla? collaborate to fulfill the requirements.
– FAA? – For example, in the Library Information System, a
Book software object may have a title attribute and
– IRS? a getChapter method.
– Intel? Designs are implemented in a programming
– ... language.
– In the example, we will have a Book class in Java.
Comp6471 Software Design Methodologies Comp6471 Software Design Methodologies
23. Page 92 Page 93
From Design to Implementation
Software Design
Analysis
Design Construction
Knowing an object-oriented language and having investigation
logical solution code
access to a library is necessary but not sufficient in of the problem
order to create object software.
In between a nice idea and a working software, there
is much more than programming. Book public class Book {
Analysis and design provide software “blueprints”, Book public void print();
illustrated by a modeling language, like the Unified (concept) title private String title;
Modeling Language (UML). print() }
Blueprints serve as a tool for thought and as a form of Representation in an
Domain concept Representation in
communication with others. object-oriented
analysis of concepts
programming language.
Comp6471 Software Design Methodologies Comp6471 Software Design Methodologies
Page 94 Page 95
Software Design Software Design (Cont’d)
How to implement the what. Some consider software design to be a “black
Requirements Document (RD) is starting point. art”:
Software design is a highly-creative activity. – difficult to prescribe how to do it
Good designers are worth their weight in gold! – hard to measure a good design objectively
– Highly sought after, head-hunted, well-paid. – “I know a good design when I see it.”
Experience alone is not enough:
– creativity, “vision”, all-around brilliance required.
Comp6471 Software Design Methodologies Comp6471 Software Design Methodologies