Fundamental of Software Engineering CSE 3205 PDF
Document Details
Uploaded by AdjustableHyperbola
Arba Minch University
Tags
Summary
This document presents an overview of various software development methodologies, including the Waterfall model, V-shaped model, Prototyping model, and Rapid Application Development (RAD).
Full Transcript
Fundamental of Software Engineering CSE 3205 Chapter Two Software processes 1 The Software Process A structured set of activities required to develop a software system 1. Requirement Identification Requirements are descriptions of the services...
Fundamental of Software Engineering CSE 3205 Chapter Two Software processes 1 The Software Process A structured set of activities required to develop a software system 1. Requirement Identification Requirements are descriptions of the services that a software system must provide. 2. Specification A software requirements specification (SRS) is a document that describes what the software will do and how it will be expected to perform. 3. design and implementation. 4. Validation: Checking that the system does what the customer wants 5. Evolution:Changing the system in response to changing customer needs A software process model is an abstract representation of a process. Some common software development methodologies include 2 Waterfall Model 1. Waterfall Model is the simplest model in software development life cycle. When the first phase finish that can only start the second phase. Waterfall approach was first SDLC Model to be used widely in Software Engineering to ensure success of the project. 3 Process Model 1. Waterfall Model Requirements definition System and software design Implementation and unit testing Integr ation and system testing Operation and maintenance 4 Waterfall model phases Requirements analysis and definition The first phase involves gathering requirements from stakeholders and analysing them to understand the scope and objectives of the project. System and software design Once the requirements are understood, the design phase begins. This involves creating a detailed design document that outlines the software architecture, user interface, and system components. 5 Implementation and unit testing. involves coding the software based on the design specifications and ensure that each component of the software is working as expected. Integration and system testing is used to test the whole program how the system working. Operation and maintenance involves fixing any issues that arise after the software has been deployed in working area 6 Waterfall model strength Simple and easy to understand and use Phases are processed and completed one at a time. Works well for smaller projects where requirements are very well understood. Clearly defined each stages. Easy to arrange tasks. Process and results are well documented 7 Waterfall model weakness High amounts of risk and uncertainty. Not a good model for complex and object-oriented projects It is difficult to measure progress within stages. Integration is which doesn't now or challenges early. 8 When to use the Waterfall Model Requirements are very well known Product definition is stable Technology is understood When we now the New version from an existing product Be sure Transport an existing product to a new platform. 9 2. V-Shaped SDLC Model. 10 V-Shaped Steps Project and Requirements Production, operation and Planning – allocate resources maintenance – provide for enhancement and corrections System and acceptance testing – Product Requirements and check the entire software system Specification Analysis – in its environment complete specification of the software system Architecture or High-Level Integration and Testing – check that modules interconnect Design – defines how software correctly functions fulfill the design Unit testing – check that each Detailed Design – develop module acts as expected algorithms for each architectural component Coding – transform algorithms into software 11 V-Shaped Strengths Challenges now the product in early stages of product development Each deliverable must be testable Project management very nice Easy to use 12 V-Shaped Weaknesses Does not easily handle concurrent events Does not handle iterations Does not easily handle dynamic changes in requirements 13 3. Prototyping Model Developers build a prototype during the requirements phase Prototype is evaluated by end users Users give corrective feedback Developers further refine the prototype When the user is satisfied, the prototype code is brought up to the standards needed for a final product. 14 Prototyping Strengths Customers can “see” the system requirements as they are being gathered Developers learn from customers A more accurate end product Unexpected requirements accommodated Allows for flexible design and development Interaction with the prototype stimulates awareness of additional needed functionality 15 Prototyping Weaknesses Tendency to abandon structured program development for “code-and-fix” development Bad reputation for “quick-and-dirty” methods Overall maintainability may be overlooked The customer may want the prototype delivered. Process may continue forever. 16 Rapid Application Model (RAD) Requirements planning phase :This involves the use of various techniques used in requirements elicitation like brainstorming, task analysis, form analysis, user scenarios and modeling. User description phase This phase consists of taking user feedback and building the prototype using developer tools and validation of the data collected in the first phase. Construction phase – productivity tools, such as code generators, screen generators, etc and develop final working product.(“Do until done”) Cutover phase -- installation of the system, user acceptance testing and user training 17 RAD Strengths Reduce the cycle time of the project.(team) Feedback from the customer is available at the initial stages. Reduced costs as fewer developers are required. The customer require in better quality products in shorter periods. Productivity may be quickly with a lower number of employees. 18 RAD Weaknesses Sometimes Low Quality because of give quick responses to the user. It requires highly skilled professionals. The absence of reusable components can lead to the failure of the project. The team leader work closely with the customers to close the project on time. 19 Rational Unified Process model 1. Inception you communicate and plan the software concept or idea, evaluating what resources you need for the project. You identify the project scope, costs and time required to build it. Elements often included in the inception stage are: Risk assessments and project plans Vision or mission the project. Financial resource and business modeling Prototype development 20 2. Elaboration you creating actionable and executable baseline architecture of the software. Use case model software architecture Risk reduction Use manual 3. Transition Deploy the system in its operating environment. distribution and installation User help and assistance platform availability Data migration user acceptance 21 What is an Agile method? (1) - Can see the first time one requirement to a customer. Focus on the code rather than the design. Based on an iterative approach to software development. Intended to deliver working software quickly. quickly to meet changing requirements. 22 Following are the phases in the Agile model are as. follows: Requirements gathering Design the requirements Implementation Testing/ Quality assurance Deployment Feedback 23 Extreme Programming 24. Pair programming is a software development technique where two programmers work together on the same task at the same time. Collective code ownership is a software engineering practice where all team members are responsible for the codebase and can make changes to any part of it. Coding standards are collections of coding rules, guidelines, and best practices. Test-driven development (TDD) is a software development process that involves tests before writing code Continuous integration:-Developers regularly merge code 25 changes into a central repository,. When to use Agile method When you have best programmers If User become decision makers At least one experienced and competent staff rapid feedback from users 26 Process assessment method A software process assessment is a the examination requirement satisfy the customer need or not. A software assessment (or audit) can be of two types. A self-assessment (first-party assessment) is performed internally by an organization's own person. A second-party assessment is performed by an external assessment team or the organization is assessed by a customer. 27 Thank You! Q? 28