Embedded Systems Software Training Center Software Life Cycle Copyright © 2011 DSR Corporation
Welcome Instructor Introduction Objectives and Content Class Materials Agenda Copyright © 2011 DSR Corporation
Instructor Introduction Alexandr Bychkov VP of Engineering at DSR Copyright © 2011 DSR Corporation
Objectives Understand what we mean by a “process” Understand software development products, processes, and resources Understand the various models of the software development process Understand the tools and techniques used for process modeling Copyright © 2011 DSR Corporation
Class Materials Software Engineering Introduction presentation is available here: http://www.estc.dsr-company.com/images/f/f3/Se-l2-diagrams.pptx Hands-on Exercises are available here: http://www.estc.dsr-company.com/images/5/5b/Se-l2-exercises.docx Copyright © 2011 DSR Corporation
Agenda The Meaning of Process Software Process Models Tools and Techniques for Process Modelling Practical Process Modelling Copyright © 2011 DSR Corporation
1. The Meaning of Process
1. The Meaning of Process A process: a series of steps involving activities, constraints, and resources that produce an intended output of some kind A process involves a set of tools and techniques Copyright © 2011 DSR Corporation
1. The Meaning of Process Process Characteristics Prescribes all major process activities Activities are organized in sequence, so timing is clear Each process has guiding principles, including goals of each activity Each process activity has entry and exit criteria May be composed of subprocesses with hierarchy or links Produces intermediate and final products Resources: Environment, tools Human effort and experience Constraints may apply to an activity, resource or product Copyright © 2011 DSR Corporation
1. The Meaning of Process The Importance of Processes Impose consistency and structure on a set of activities Guide us to understand, control, examine, and improve the activities Enable us to capture our experiences and pass them along Copyright © 2011 DSR Corporation
2. Software Process Models
2. Software Process Models Software Life Cycle Process When a process involves building a software, the process may be referred to as a software lifecycle Activities (sub-processes): Requirements analysis and definition System (architecture and high level) design Program (low level) design Writing programs (coding/implementation) Testing: unit integration system System delivery (deployment) Maintenance Copyright © 2011 DSR Corporation
2. Software Process Models Software Life Cycle Processes by IEEE/EIA 12207.0 Primary lifecycle processes: Development process Acquisition process Supply process Operation process Maintenance process Supporting lifecycle processes: Audit process Configuration Management Joint review process Documentation process Quality assurance process Problem solving process Verification process Validation process Organizational processes: Management process Infrastructure process Improvement process Training process Copyright © 2011 DSR Corporation
2. Software Process Models Software Development Process Models Waterfall model V model Prototyping model Spiral model Transformational model Phased development: increments and iterations Agile methods Rapid application development (RAD) Cowboy coding Copyright © 2011 DSR Corporation
2. Software Process Models Waterfall Model Copyright © 2011 DSR Corporation
2. Software Process Models Waterfall Model Specifics One of the first process development models proposed (1970, article by Winston W. Royce) Works for well understood problems with minimal or no changes in the requirements Simple and easy to explain to customers It presents a very high-level view of the development process sequence of process activities Each major phase is marked by milestones and deliverables (artefacts) Copyright © 2011 DSR Corporation
2. Software Process Models Drawbacks of the Waterfall Model Provides no guidance on how to handle changes to products and activities during development (assumes requirements can be frozen) Doesn’t allow to evaluate the requirements feasibility Doesn’t contain the bug fixing activity Views software development as a manufacturing process rather than as a creative process There are no iterative activities that lead to creating a final product Long wait before the final product Copyright © 2011 DSR Corporation
2. Software Process Models V Model Copyright © 2011 DSR Corporation
System Engineering Process 2. Software Process Models Specific of Embedded System Development Process System Engineering Process System Requirements Definition System Test System Architecture Design System Integration and System Integration Test Software Requirements Definition Comprehensive Software Testing Software Architecture Design Integration and Software Testing and Software Integration Detailed Software Design Unit Test Software Engineering Process Implementation Copyright © 2011 DSR Corporation
2. Software Process Models Prototyping Model Allows repeated investigation of the requirements or design Reduces risk and uncertainty in the development Very helpful for UI specification Proof-of-concept Copyright © 2011 DSR Corporation
2. Software Process Models Spiral Model – Minimization and Control of Risk Copyright © 2011 DSR Corporation
2 Software Process Models Transformational Model Copyright © 2011 DSR Corporation
2. Software Process Models Phased Development: Increments and Iterations Copyright © 2011 DSR Corporation
2. Software Process Models Phased Development: Increments and Iterations (cont.) Incremental development: starts with a small functional subsystem and adds functionality with each new release Iterative development: starts with a full system, then changes functionality of each subsystem with each new release Copyright © 2011 DSR Corporation
2. Software Process Models Phased Development Phased development is desirable for several reasons: It enables customers to have some functionality while the rest is being developed Training can begin early, even though some functions are still in progress Frequent releases allow developers to fix unanticipated problems globally and quickly The development team can focus on different areas of expertise with different releases Copyright © 2011 DSR Corporation
2. Software Process Models Agile Methods Emphasis on flexibility in producing software quickly and capably Agile manifesto: Value individuals and interactions over process and tools Prefer to invest time in producing working software rather than in producing comprehensive documentation Focus on customer collaboration rather than contract negotiation Concentrate on responding to change rather than on creating a plan and then following it Copyright © 2011 DSR Corporation
2. Software Process Models Agile Methods: Examples of Agile Process Extreme programming (XP) Scrum: 30-day iterations; multiple self-organizing teams; daily “scrum” coordination Feature-driven development (FDD): driven from a client-valued functionality (feature) perspective Adaptive software development (ASD) Copyright © 2011 DSR Corporation
2. Software Process Models Agile Methods: Twelve Facets of XP The planning game (customer defines value) Small releases Metaphor (common vision, common names) Simple design Writing tests first Refactoring Pair programming Collective ownership Continuous integration (small increments) Sustainable pace (40 hours/week) On-site customer Coding standards Copyright © 2011 DSR Corporation
2. Software Process Models Agile Methods: Scrum Roles: “Scrum Master”, “Product Owner”, “Team” A sprint is the basic unit of development in Scrum “backlog”, which is a prioritized set of high level requirements of work to be performed Meetings: Daily Stand-ups, Sprint Planning Meeting, Sprint Review Meeting Copyright © 2011 DSR Corporation
2. Software Process Models Agile Methods: RAD RAD uses minimal planning in favor of rapid prototyping It involves methods like iterative development and software prototyping Rad involves Joint Application Development (JAD) techniques and CASE tools to translate user needs into working model Copyright © 2011 DSR Corporation
3. Tools and Techniques for Process Modeling
3. Tools and Techniques for Process Modeling Notation depends on what we want to capture in the model The two major notation categories: Static model: depicts the process Example: Lai notation Dynamic model: enacts the process Marvel Specification Language Copyright © 2011 DSR Corporation
3. Tools and Techniques for Process Modeling Marvel Case Studies Signalling Fault Resolution Process Copyright © 2011 DSR Corporation
3. Tools and Techniques for Process Modeling Example of Marvel Commands Copyright © 2011 DSR Corporation
4. Practical Process Modeling
4. Practical Process Modeling Example 1: Control Panel Summary Data Sensor data Collector Data processor Network bridge Sensor data CDMS Reports DB Web Service UI Control Operating System Hardware 3rd party SW Copyright © 2011 DSR Corporation
4. Practical Process Modeling Example 1: Control Panel (cont.) Chosen Process model: Waterfall-based with prototyping and early delivery Prototyping for: DBMS choice Feasibility evaluation HW limitations 3rd party compatibility Performance requirements understanding LLD and implementation in parallel Early delivery After unit testing to start system integration Copyright © 2011 DSR Corporation
4. Practical Process Modelling Example 1: Control Panel (cont.) REQUIREMENTS ANALYSIS SYSTEM DESIGN PROGRAM DESIGN CODING UNIT TESTING EARLY DELIVERY Prototyping INTEGRATION TESTING SYSTEM TESTING FINAL DELIVERY MAINTENANCE Copyright © 2011 DSR Corporation
4. Practical Process Modeling Example 2: Porting Tasks: Porting to a new platform Hardware OS New features implementation Process model: Iterative Phase 1 Porting to anew platform Phase 2 New feature implementation Copyright © 2011 DSR Corporation
4. Practical Process Modeling Example 3: Huge Innovative Web-based System Details: The work requires 2 years to implement Set of main features is clear Set of supplementary features is not clear Process model: Iterative Phase 1: Development of the operable prototype Engine with basic functions Basic UI Phase 2: Development of the sellable version 1.0 with basic functionality Phases 3…n Enhancement of functionality using Scrum Copyright © 2011 DSR Corporation
4. Practical Process Modeling Example 4: Ariane-5 Reuse process model presentation Copyright © 2011 DSR Corporation
4. Practical Process Modeling Typical Issues Customer was not satisfied with results System developed and tested well on Windows 2008 Server, but customer uses Windows 2008 R2 Server where the main functionality does not work. Issue: incomplete requirements. Wrong test results QA team wrongly interpreted design specification so all of the tests failed. Issue: incomplete design. A developed SW system has good quality but cannot operate on the user’s site because the feature that supports their workflow is not supported. Issue: incomplete requirements Copyright © 2011 DSR Corporation
Summary Process development involves activities, resources, and products Process model includes organizational, functional, behavioural, and other perspectives A process model must be chosen for every project and product A process model is useful for guiding team behaviour, coordination, and collaboration Copyright © 2011 DSR Corporation
References Software Engineering: Theory and Practice / Shari Lawrence Pfleeger SWEBOK. Guide to the Software Engineering. Body of Knowledge. 2004 Version / A project of the IEEE Computer Society Professional Practices Committee IEEE Std 610.12-1990, IEEE Standard Glossary of Software Engineering Terminology IEEE Std 1074-1997. IEEE Standard for Developing Software Life Cycle Processes Copyright © 2011 DSR Corporation