0% found this document useful (0 votes)
2 views26 pages

Chapter 2 - Software Process and Proecss Model

kec book with all detail knnowldge about software engineering

Uploaded by

Stay Healthy
Copyright
© All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF or read online on Scribd
0% found this document useful (0 votes)
2 views26 pages

Chapter 2 - Software Process and Proecss Model

kec book with all detail knnowldge about software engineering

Uploaded by

Stay Healthy
Copyright
© All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF or read online on Scribd
SOFTWARE PROCESS AND PROCESS MODEL CHAPTER OUTLINE After studying this chapter, the reader will be able to understand the = Software Process & Software Development Process Models % Computer Aided Software Engineering (CASE) Software process also known as software methodology is the set of related activities that Ce to cost effective and timeliness production of software. It is the set of activities that leads ‘° ‘i production of a software system from scratch or modifying existing software in @ standar language like c, c++, java ete. s0, a structured set of activities required to develop a software system like: specification, design, validation and evolution are ‘called software process activities. ‘These process activites are organized differently in different development model. How these activities are carried out depends on the type of software, people, and organizational structure involved, Following are major s/w process activities: © Software specification © Software design and implementation © Software validation «Software evolution Software Specification Software specification sometimes called requirement engineering is the Process of understanding and defining what services are required from the system and identifying the Constraints on the system’s operation and development. In addition it also contains non functional requirements. Non-functional requirements impose constraints on the design or implementation (such as performance engineering requirements, quality standards, or design constraints). Software specification leads to production of requirement document that specifies a software satisfying stakeholder’s requirement, It involves the activities like: feasibility study, requirement elicitation and analysis, requirement specification and requirement validation, Fig: Requirement Specification Process Scanned wth Camscaner Software Process and Process Model O- ay software Design and Implementation . smplementation is the stage in the software engineering process at which cme developed. Software design and implementation activities are eee eal # eae design is a creative activity in which you identify software puss a ine relationships, based on a customer's requirements. Implementation is the aay of realizing the design as a program. A software design is a description of the structure a ‘he software to be implemented, the data which is part of system, the interfaces between system component, sometimes algorithm used, logical structure of database etc. The implementation of the software development is the process of converting system specification and design into an executable system. The specific design process activities include: «Architectural design © Abstract specification © Interface design * Component design + Data structure design * Algorithm design Software Validation Software Validation cofeware Validation is a proces of | a io the pre-defined and specifi | stomers' demands and a that whether th aeons It e developed sof ; specifications (SRS) and if ireaton te, Dullt as dif “I Per pre-deci Software validation ae to fulfil the customers! fe ee that a system confor ve ly means Verification and validati needs in the real environment. Its intended to a its 5 ion (V & V) is intended to show Tight product? It i Scanned wth Camscanner 1g GB. Sorrwane Exainsenuna oftware Process from user requirement to software development. It involves checking and st review processes and system testing. System testing involves executing the system with test vices that are derived from the specification of the real data to be processed by the system. ‘Component Boing . Acceptance testing ‘eating Fig: System Testing Process Testing Stages Component or unit testing | + Individual components are tested independently to ensure that they operate correctly + Components may be functions or objects or coherent groupings of these entities. System testing + The components are integrated to make up the system, + Testing of the system as a whole. Testing of emergent properties is particularly important + It also concerned with validating that the system meets its functional and non- functional requirement and testing the emergent system properties. Acceptance testing, + Acceptance testing revel error in the system requirement definition because the real data exercise the system in different ways from the test data. + Testing with customer data to check that the system meets the customer's needs. | Detialed design specification Sub-aystem Acceptance ee integeaton ‘cat plan ntegraio tet plan Fig: Software Testing Phases Seamed wth Camscaner Software Process and Process Model O Software Evolution In software engineering, software evolution is referred to as the process of developing, maintaining and updating software for various reasons, Software changes are inevitable because there are many factors that change during the life cycle of a piece of software. It is a term which refers to the process of developing software initially, then timely updating it for various reasons, i.e,, to add new features or to remove obsolete functionalities etc, Process includes fundamental activities of change analysis, The evolution release planning, system implementation and releasing a system to customers. Some of these factors include: * Requirement changes * Environment changes * Errors or security breaches * New equipment added or removed * Improvements to the system Define system ~ Assess existing J > system] Modify Tequirements systems } Perens system Existing systems Fig: System Evol A software process model is an abstract diagrammatic representation of a software process in a simplified form. It represents the order in which the activities of software development will be undertaken, Each model represents a process from a specific perspective. Depending on the size and purpose of an organization, the systems do differ in terms of their technological complexity and organizational problems they are meant to solve. As there are different kinds of systems, a number of models are in existence that can be used Jn the development of an information system. Scanned wth Camscaner 20 C1 Sorrwane Exaunzsna Waterfall Model re This is the simplest software development life cycle model, which states that ne a organized in a linear order. This model takes the fundamental process activities 0! a es development, validation and evolution and represents them as separate process phas requirement specification, design, implementation, testing and so on. Because of cascade from one phase to another, this model ‘is known as waterfall model or software life cycle or linear sequential model. In this model the result of each phase is one = more documents. that are approved and following phase should not start until the previou: phase has finished these stages and feed information to each other. The principal stages oF waterfall model are depicted in the following figure. Implementation and unit testing Integration and system testing Operation and maintenance Fig: Water fall model + Requirements analysis and definition: In this phase the complete service documentation willbe prepared by the developers who will consult with the ellen The system's service, constraints and goals are established by consultation with system users, They are often defined in detail and serve as a system specification The developer will analyze the collected requirement to create the documentatiny both for developer and clients. + System and software design: The software design based on approved documentation defines the software and hardware requirements for the softwar The software architecture willbe built which will include the module ac, Ff ae relationship, database and their relatives, Software design involves identityn eir describing the fundamental software system abstractions and their relationship. at Scanned wth Camscaner software Process and Process Model © ECHARTER: 3 21 44 of this phase developer will exactly know what they are going to develop the end of and what the problems to be solved are. Implementation and unit testing: In this stage, requirement document and a design is transformed into set of programs and program units. Then tndividually developed units are tested to verify that each unit meets its specification. Integration and system testing: In this phase all the modules are integrated together to form a system and tested as a complete system to ensure that the software requirements have been met. After testing, the software system is delivered to the customer. Operation and maintenance: This is the longest life-cycle phase. The system is installed and put into practical use. Maintenance involves correcting errors which were not discovered earlier stages of the life-cycle, improving the implementation of system units and enhancing the system's services as new requirements are discovered. | Advantages of waterfall model \ . Linear structure of this model is easy to understand. Development progress is easily estimated. Easy to understand even by non-technical person, ie. customers. Each phase has well defined inputs and outputs. Easy to use as software development proceeds, Each stage has well defined deliverables, Helps the project manager in proper planning of the project. isadvantages of waterfall model The drawback of the model is the difficul i th process is underway. ty of accommodating change after the Real projects rarely an i rely follow the waterfall model because changes can cause rw 7 is often difficult for the user to state all requirements explicitly. Ithas es as unnecessary delays; sometimes it may lead to “blocking states” Ithes infled Ten inflexible partitioning of the project into distinct stages This model i ; is only appropriate when the Tequirements are well-understood. Seamed wth Camscanner » a ‘SOFTWARE ENGINEERING When to use the waterfall Model This model is used only when the requirements are very well known, clear and fixed. Product definition is stable. «Technology is understood. 4 Ifthere are no ambiguous requirements «Ample resources with rehired expertise are available freely «When the project is of small size. Evolutionary Development Model/Incremental Development Model ‘There is growing recognition that software, like all complex systems, evolves over a period of time, Business and product requirements often change as development proceeds, making a straight path to an end product unrealistic; tight market deadlines make completion of a comprehensive software product impossible, but a limited version must be introduced to meet | competitive or business pressure; a set of core product or system requirements is well | understood, but the details of the product or system extensions have yet to be defined. In these similar situations, software engineers need a process model that has been explicitly designed to accommodate a product that evolves over time. Evolutionary model is a version based software model in which iterative process starts with a simple implementation of small set of software requirements and enhances an evolving version until the complete software is implemented and deployed. Evolutionary model is iterative in nature-but unlike prototyping this model | focuses on delivery of operational product with each increment. Outline description | Concurrent i ‘Activities { Initial | version | ' —_— Intermediate version 1 Final version Scanned wth Camscanner Software Process and Process Model O Main characteristics * The phases of the software construction are interleaved. * Feedback from the user is used as throughout to the entire process. ‘+ The software product is refined through many versions. Types of Evolutionary Development * Exploratory development: This evolutionary development starts with those requirements of the software which are clearly understood and software evolves by adding new requirements as they are proposed by the stakeholders of the software system. Throw-away prototyping: This evolutionary development starts with those requirements of the software which are poorly understood and develop a better understanding of the requirements of the software system. Advantages * Deals constantly with changes Provides quickly an initial version of the system * Involves all development teams Disadvantages * Quick fixes may be involved, * “Invisible” process, not well-supported by documentation, The system’s structure can be corrupted by continuous change, * Special tools and techniques may be necessary, * The client may have the impression the first version is very close to the final product and thus be less patient, Applicability * This model can be used when the requirements of the complete system are not clearly defined and understood, * Major requirements must be defined; however, some details can evolve with time, * There is a need to get a product to the market early, * When a new technology is being used * When resources with needed skill set are not available + When there are some high risk features and goals. Scanned wth Camscaner 24 (D Sorrwane Exomeenina thal “ totype” that + Itis applicable when the client and the developer aBree ona “rapid prototyP _will be thrown away, «This model is good for small and medium-sized software systems. Component Based Software Engineering (CBSE) : procedure that accentuates the design and th the help of existing reusable software In this rather than developing system ts and design the desired system in | Component-based software engineering is a development of computer-based systems wi components. It is also known as reuse oriented model. from scratch, we search for existing reusable. component yst terms of those components. The advantage of the component-based approach is providing the | reusability of these components. With component-based software engineering (CBSE), it may be j argued that software development risk is reduced, a3 one is reusing existing tried-and-tested | ‘oftware rather than software developed from scratch. Component-based development | techniques involve procedures for developing software systems by choosing ideal off-the-shelf | components and then assembling them using well-defined software architecture. Component | based software engineering is a approach which mainly depends on building systems from the | existing components and, providing support for the development of systems as assemblies of | components. Basic Principles of the Component-based Software Engineering 4. Reusability: It means that the same component can be used in many systems. The desire to reuse a component leads to some technical constraints such should be available to be able to reuse a component as well as a well organized reuse process and the similar architecture of the components should be provided to ensure the consistency and the efficiency of the system. ood documentation 2 Substitutability: The overall system should work in spite of which component is ‘There are some limitations in this area such as: the runtime replacement ie components. of tke are part of a system or increase the functionality of individual components a | Component Requirement ) ‘specification ‘analysis a ents ‘System de: peal i aiication ‘ith refua” a | | | 3, Extensibility: Extensibility can take one of two shapes either extending components tha | Ss it | Fig: Reuse Oriented Model Scanned wth Camscaner process and Process Model O software process which are different to other processes are the ‘The stages of component-based software followings: sation: In tis step, PY consulting with the stakeholders of the ett Resi eset fan zac eee ae system, requireme! document. . . ements specification, a search is made for is: Based on the require ‘ 2. Component Analysis ecification. Usually, there is no exact match, implement the given sp nents that can imP ide some of the functionality required. baa only provi and the components that may be used ring this stage, the requirements are analysed using Requirements Modification: Dut a . fo onents. Requirements are then modified to reflect the information about the new comp’ services of available components. 4, System Design with Reuse: During this phase, the framework of the system is designed or an existing framework is reused. The designers take into account the components that are reused. Some new software may have to be designed if reusable components are not available. 5, Development and Integration: In this step, adapt the selected components so that they suit the existing component model or requirement specification. Some components would be possible to directly integrate in to the system, some would be modified through parameterization process, some would need wrapping code for adaptation, etc. Software that cannot be externally procured is developed, and reusable components are integrated to create the new system, A Ao 5 ‘ System Validation: In this step, developed system is tested to ensure that software system does exactly what the customer wants and software is defect free. Advantages * Software development cost and risk is reduced. . Allows faster development and delivery of software. In principle, more reliable sy tested components, stems can be developed due to using previously Disadvantages * — Compromises in requit : a in requirements are needed, "8S control over the system's evolution, Applicability When there is pool of existi 2 ofthenew produ, St"8COmPonents that could satisfy the requiremen! Emergin, \g trend: inte, i ration of web services from a range of suppliers. Scanned wth Camscanner » O SOFTWARE ENGINEERING prototyping Model in traditional waterfall model the intermediate changes in user’s requirements cannot be In Mpmodated once the system development process begins. So, an alternative method to traditional method has been developed, called prototyping model is based on the assumption that it is difficult to know all the requirement of user in advance. A prototyping is an initial version of software that is used to demonstrate the concept, tryout design options and find out vrore about problem domain and its possible solutions. ‘The basic idea in Prototype model is that instead of freezing the requirements before a design or coding can proceed, a throwaway prototype is built to understand the requirements. This prototype is developed based on the currently known requirements. By using this prototype, the cient can get an “actual feel” of the system, since the interactions with prototype can enable the client to better understand the requirements of the desired system. It is an attractive idea for complicated and large systems for which there is no manual process or existing system to help determining the requirements. In many instances the user only has general view of what is expected from the software product. In such a scenario where there is absence of detailed information regarding the input to the system, the processing needs and the output requirement, the prototyping model may be employed. This model reflects an attempt to increase the flexibility of the development process by allowing the client to interact and experiment with a working representation of the product. This type of System development method is employed when it is very difficult to obtain exact requirements from the customer (unlike waterfall model, where requirements are clear). While making the model, user keeps giving feedbacks from time to time and based on it, a prototype is made. Completely built sample model is shown to user and based on his feedback; the SRS (Gystem Requirements Specifications) document is prepared. After completion of this, a more accurate SRS is prepared, and now development work can start using Waterfall Model. Requirements Gathering Quick Design ‘Acceptance by customer fine Requirements Customer suggestions Seamed wth Camscanner Software Process and Process Model O Tiare a The prototyping model consists of following steps: 1 Determine the Requirements: This is the first phase of prototyping model, In this, the system's service, constraints and goals are established by consultation with system users. Quick Design: On the basis of known requirement, rough design of system is drawn for discussion and decision. Build/create Prototype: In this phase, the information from the design is rolled into prototype. Prototype is the blueprint of the system. Use and Evaluate Prototyping: In this phase, the prototype is presented to the user of the system foe use and review. User comments and suggestions are collected and areas of refinements are determined. Refine the Prototype: According to suggestions from the user, the system developer revises and enhances the prototype to make it more effective and efficient to meet customer requirements. Design: Once the prototype is refined and accepted by the users, actual system is designed to satisfy customer. Implementation: During this stage, the software design is realized as a set of programs and program units Testing: Once the program modules are ready, each of the program modules is tested independently as per the specifications of the users and debugged. Operation and Maintenance: In this stage, the system is installed and put into practical use. Maintenance involves correcting and improving the implementation of system units and enhancing the system's services as new requirements are discovered, Advantages of Prototyping Model * When prototype is shown to the user, he/she gets a proper clarity and ‘feel’ of the functionality of the software and he can suggest changes and modifications, * Feedbacks from customer are received periodically and the changes don't come as a last minute surprise, + When client is not confident about the developer's capabilities, he/she asks for a small Prototype to be built Based on this model, he/she judges capabilities of developer. * Sometimes it helps to demonstrate the concept to prospective investors to get funding for project. * It reduces risk of failure, as potential risks can be identi can be taken © Iteration between development team and environment during project. + Time required to complete the project after geting final the SRS reduces, since the developer has a better idea about how he should approach the project. Scanned wth Camscaner 28 «= ) Sorrware Exainrrrina Disadvantages of Prototyping Model i usin © Prototyping is usually done at the cost of the developer. So it should be done using minimal resources. ii I, it + Once we get proper requirements from client after showing, prototype ae may be of no use. That is why; sometimes we refer to the prototype as away’ prototype. © Too much involvement of client is not always preferred by the developer. . Too many changes can disturb the rhythm of the development team. When to use Prototype Model «Prototype model should be used when the desired system needs to have a lot of interaction with the end users. * Typically, online systems, web interfaces have a very high amount of interaction with end users, are best suited for Prototype model. It might take a while for a system to be built that allows ease of use and needs minimal training for the end user. «Prototyping ensures that the end users constantly work with the system and provide a feedback which is incorporated in the prototype to result in a useable system. They are excellent for designing good human computer interface systems. Process Iteration Changes are usually unavoidable in all large software projects. The system requirements chan; as organization continuously responds to the changing environment and conditions’ Management priorities may change. Due to the quick progress in technologies, designs and implementation will change. This means that the process activities are regularly re on system is reworked in response to change requirements. The following two process meri have been designed to support process iteration: 's models 1, Incremental delivery. The software specification, design and imy lementati down into a series of increments that are each developed inturn ston 2° broken 2. Spiral development. The development of the system spirals outw. outline through to the final developed system, ‘ds from an initial Incremental Delivery The waterfall model of development requires defining the requirements f for a system bef fore design begins. On contrary, an evolutionary development allows require leads to software that may be poorly structured and difficult to understana nn PARBE but it tand and maintai in. Scanned wth Camscaner software Process and Process Mode! Q ‘inna a .ch that combines the advantages of these two models. In ay roa customers identify the services to be provided by the services is most important and which are emental delivery is an app’ ent process, ide which subset of the . ; decide + of delivery increments are then defined, with each the system functionality. The allocation of services to £ service. The highest priority services are delivered first, Develop system] increment System incomplete? Incr incremental developm software system. They east important to them. increment providing a sub-set of increments depends on the priority of Assign requirement: to increments Define outline requirements system Complete? Fig: Incremental delivery Once the system increments have been identified, the requirements for first increment are defined in detail, and that increment is developed using the best suited software process. As new increments are completed, they are integrated with existing increments and the system functionality improves with each delivered increment. Advantages of Incremental Delivery Model * Customers do not have to wait until the entire system is delivered before they can Bain value from it. The first increment satisfies their most critical requirements so they can use the software immediately. Customers can use the early increments as : rototypes and gai ence that pais prototyps gain experienc: requirements for later system increments There is a lower risk of overall encountered in some increments, versions, Project failure. Although problems may be it is likely that these will be solved in later very Model For incremental model, Tequired good designing and well planning, this model is higher than waterfall model. Seamed wth Camscanner (D. Sorrwane ENGINEERING 0 jicability of Incremental Delivery Model Ape . When the requirements of the system are clearly understood «when demand for an early release of a product arises When software engineering team are not very well skilled or trained When high-risk features and goals are involved * his methodology is more in use for web application development. spiral Model se spiral mode, also known as spiral lifecycle model or Boehm’s model was introduced by ary Boehm in 1988. Its a system development model based on process iteration. This model ae eyelopment combines the features of prototyping model and the waterfall model in order to

You might also like