Presentation is loading. Please wait.

Presentation is loading. Please wait.

Module Code: CST 240 / BIT 233 Chapter 1: Introduction to Software Development Al Khawarizmi International College, Abu Dhabi, U.A.E.

Similar presentations


Presentation on theme: "Module Code: CST 240 / BIT 233 Chapter 1: Introduction to Software Development Al Khawarizmi International College, Abu Dhabi, U.A.E."— Presentation transcript:

1 Module Code: CST 240 / BIT 233 Chapter 1: Introduction to Software Development Al Khawarizmi International College, Abu Dhabi, U.A.E

2 At the end of this chapter the student should be able to: 1. Analyze the process models and their stages in the production of software development. 2. Differentiate generic and bespoke products for software development. 3. Discuss the professional responsibilities of software developers. chapter 1:Introduction to Software Development2

3 1.1 Terminologies – Software, Software Engineering, Software Development 1.2 Software Products 1.3 Software Process Models 1.4 Process Iteration 1.5 Professional Responsibility chapter 1:Introduction to Software Development3

4  Software is a collection of ◦ computer programs ◦ Procedures ◦ rules & ◦ all associated documentation chapter 1:Introduction to Software Development4

5  Software Engineering is concerned with  Theories,  Methods,  Tools These are needed to develop the software for computers. chapter 1:Introduction to Software Development5

6  Software Engineers  Should adopt a systematic and organised approach to their work  Use appropriate tools and techniques depending on the problem to be solved, the development constraints and the resources available. chapter 1:Introduction to Software Development6

7  The objective of software engineering is to produce software products.  Software products are software systems delivered to a customer with the documentation which describes how to install and use the system. chapter 1:Introduction to Software Development7

8  Generic Product  Bespoke Product chapter 1:Introduction to Software Development8

9 Generic Readymade Standalone product developed not for any specific client but for all. Requirements are developed within the development organization. Relatively cheap to buy. They are generally flexible Example: Ms Word, Photoshop. Bespoke Customized product developed for a particular customer. Requirements are produced in conjunction with the client and often serve as the basis for a contract. Often quite expensive. Not flexible. Example: KADS-Khawarizmi Associate Degree System 9

10  The software should deliver the required functionality and performance to the user and should be maintainable, dependable and acceptable. 1. Maintainability 2. Dependability 3. Efficiency 4. Acceptability chapter 1:Introduction to Software Development10

11 1. Maintainability: The system or the software should be flexible in order to make future changes requested by the customer. 2. Dependability: It includes the following attributes: A-Reliability: System should not generate errors, and results are carefully calculated. B-Security: It won't let any one enter the system, except for those who are authorized. C-Safety: Software should not make any harmful effect to other programs or files. Dependable software should not cause physical or economic damage to in case of system failure. chapter 1:Introduction to Software Development11

12 3. Efficiency Software should not waste system resources such as memory and processor cycles. 4. Acceptability Software must be accepted by the users for whom its designed. This means it must be understandable, usable and compatible with other systems. chapter 1:Introduction to Software Development12

13 set of activities and associated results  is a set of activities and associated results which produce a software product  These activities are mostly carried out by Software Engineers.  Computer-aided software Engineering (CASE) tools may be used to help with some process activities. chapter 1:Introduction to Software Development13

14 1. Software Specification 2. Software development 3. Software Validation 4. Software evolution chapter 1:Introduction to Software Development14

15  Software Specification The functionality of the software and the regulations on its operation should be defined.  Software development Software is designed and codes written to fulfill the customer requirement  Software Validation Software must be checked to ensure that it does what the customer wants.  Software evolution The software must evolve to meet changing needs of the customer. chapter 1:Introduction to Software Development15

16 ◦ Waterfall Model ◦ Evolutionary Development ◦ Boehm’s Spiral Model ◦ Incremental Development chapter 1:Introduction to Software Development16

17 chapter 1:Introduction to Software Development17

18  Requirements analysis and definition  The system's services, constraints and goals are established by consultation with system users.  User requirement specification is a document produced at the end of the requirement analysis that defines what is required of the computer system. chapter 1:Introduction to Software Development18

19 chapter 1:Introduction to Software Development Al Khawarizmi International College, Abu Dhabi, U.A.E System and software design The design stage translate the user requirement into a representation of the proposed system. System design gives the overall system architecture. Software Design involves identifying and describing the fundamental software system and their relationship. 19

20  Implementation and unit testing  Software design is converted into set of programs or program units.  During implementation Unit testing is carried out.  Unit testing involves verifying that each unit meets its specification. chapter 1:Introduction to Software Development Al Khawarizmi International College, Abu Dhabi, U.A.E 20

21  Integration & system testing  Individual program units are integrated and tested as a complete system to ensure it meets software requirement.  System is delivered to the customer after this. chapter 1:Introduction to Software Development Al Khawarizmi International College, Abu Dhabi, U.A.E 21

22  Operation and maintenance  Longest Life cycle  Involves correcting error identified after the system is installed and put into practical use.  Improving the implementation of system unit  Enhancing the system requirement as new requirements are discovered.  Note: Documentation has to be done at every stage. chapter 1:Introduction to Software Development Al Khawarizmi International College, Abu Dhabi, U.A.E 22

23  1. This model reflects engineering practice.  2.The stages are overlapped and feed information to each other.  3. Waterfall model reflects good visibility through its separated activities and documentation generated at the end of each activity.  4. Provides better quality control  5. Helps in Cost controlling chapter 1:Introduction to Software Development Al Khawarizmi International College, Abu Dhabi, U.A.E 23

24  Because of the iteration it's difficult to identify management checkpoints for planning and reporting. So it's normal to freeze one of the stages, like the specification and design, which will cause the system not to do what the user wants.  It may lead to a badly structured system. chapter 1:Introduction to Software Development Al Khawarizmi International College, Abu Dhabi, U.A.E 24

25  The delivered system sometimes doesn't meet the customer's requirements.  Each stage in the process reveals new understanding of the previous stages, that requires the earlier stages to be revised. chapter 1:Introduction to Software Development Al Khawarizmi International College, Abu Dhabi, U.A.E 25

26  This model is only appropriate when the requirements are well-understood and changes will be fairly limited during the design process.  Business systems have stable requirements.  The waterfall model is mostly used for large systems engineering projects where a system is developed at several sites. chapter 1:Introduction to Software Development Al Khawarizmi International College, Abu Dhabi, U.A.E 26

27 chapter 1:Introduction to Software Development Al Khawarizmi International College, Abu Dhabi, U.A.E Specifications Development Validation Initial Version Intermediate Versions Final Version Outline Definition The idea is based on developing an initial implementation, exposing this to the user comments, and refining this through many versions until the final system is developed. It can be used when the domain is not very well understood. Concurrent activities 27

28 chapter 1:Introduction to Software Development Outline Requirements Evolutionary Prototyping Throw-away prototyping Executable prototype + System specification Delivered system There are two types of evolutionary development: Al Khawarizmi International College, AL AIN, U.A.E 28

29 1- Exploratory development / Evolutionary Prototyping:  The objective of this process is to work with customer to explore their requirements and deliver a final system.  It starts with the user requirement which is best understood and has high priority. Later low priority and unclear requirements are developed after the requirements are well understood. chapter 1:Introduction to Software Development Al Khawarizmi International College, Abu Dhabi, U.A.E 29

30 2- Throw away prototype:  Prototype is build to understand the customer requirement and discarded after obtaining a better requirement definition. Then a new system is developed based on the specifications derived from the throwaway prototype.  It has a very short life-time. chapter 1:Introduction to Software Development Al Khawarizmi International College, Abu Dhabi, U.A.E 30

31 Evolutionary Development is more effective because it meets the direct needs of the customer, more than the waterfall model. chapter 1:Introduction to Software Development Al Khawarizmi International College, Abu Dhabi, U.A.E 31

32  1- The process is not visible: Managers need regular documentations to evaluate the progress, but the software in this model is developed quickly and it won't be cost effective to produce documents for every version produced.  2- System is poorly structured: Continues changes in software, corrupts the software structure. So changing the software in future become more difficult and costly. chapter 1:Introduction to Software Development Al Khawarizmi International College, Abu Dhabi, U.A.E 32

33  3- Special tools and techniques may be required: Evolutionary development requires rapid development for which special tools and techniques may be required and not all team members may have the skill to use them. chapter 1:Introduction to Software Development Al Khawarizmi International College, Abu Dhabi, U.A.E 33

34 1- The small systems. 2- With short lifetime systems. 3- Subsystems that are part of larger systems. chapter 1:Introduction to Software Development Al Khawarizmi International College, Abu Dhabi, U.A.E 34

35  Boehm’s Spiral Model  Incremental Development chapter 1:Introduction to Software Development Al Khawarizmi International College, Abu Dhabi, U.A.E 35

36  Process is represented as a spiral rather than as a sequence of activities with backtracking.  Each loop in the spiral represents a phase in the process.  There are NO fixed phases such as specification or design - loops in the spiral are chosen depending on what is required.  Risks are explicitly assessed and resolved throughout the process. chapter 1:Introduction to Software Development Al Khawarizmi International College, Abu Dhabi, U.A.E 36

37 chapter 1:Introduction to Software Development Progress through steps Cumulative cost Determine objectives, alternative, constraints Risk analy -sis Prototype Risk analysis Risk analysis Risk analysis 123 Prototype Operational Prototype Simulations, models, benchmarks Detailed design Code Unit test Integration and test Acceptance test Implemen- tation Design validation and verification Software product design Software requirement Requirement validation Development plan Integration and test plan Plan next phases Develop, verify next-level product Evaluate alternatives identify, resolve risks Requirements plan life-cycle plan Review Commitment partition Al Khawarizmi International College, Abu Dhabi, U.A.E 37

38  Each loop represents a phase:  Loop1: Feasibility  Loop2: User requirements  Loop3: Design  Loop4: Implementation  Loop5: Maintenance  There is no fixed number of phases in this model, rather this is considered by the management of the software process. chapter 1:Introduction to Software Development Al Khawarizmi International College, Abu Dhabi, U.A.E 38

39  A cycle starts going clockwise. chapter 1:Introduction to Software Development Objectives Setting Risk analysis and risk reduction planning Plan next cycleDevelopment and validation Al Khawarizmi International College, Abu Dhabi, U.A.E 39

40 Each loop in the spiral is split into four sectors:  1- Objectives setting: Specific objectives for the phase are identified.  2- Risk assessment & reduction: Identify risk and develop plans to reduce them.  3- Developing & Validation: A development model for the system is chosen which can be any of the generic models  4- Planning: The project is reviewed and the next phase of the spiral is planned. chapter 1:Introduction to Software Development Al Khawarizmi International College, Abu Dhabi, U.A.E 40

41  Spiral model includes other process models. ◦ Prototyping may be used in one spiral to resolve requirement uncertainties and hence reduce risk. ◦ This may be followed by a conventional waterfall model where each loop corresponds to the different stages of the waterfall model. chapter 1:Introduction to Software Development Al Khawarizmi International College, Abu Dhabi, U.A.E 41

42  Rather than delivering the system as a single delivery, the development and delivery is broken down into increments with each increment delivering part of the required functionality.  User requirements are prioritised and the highest priority requirements are included in early increments. chapter 1:Introduction to Software Development Al Khawarizmi International College, Abu Dhabi, U.A.E 42

43  Once the development of an increment is started, the requirements are frozen though requirements for later increments can continue to evolve.  It’s a model that combines the advantages of evolutionary development and large scale (large system) development control. chapter 1:Introduction to Software Development Al Khawarizmi International College, Abu Dhabi, U.A.E 43

44 chapter 1:Introduction to Software Development Al Khawarizmi International College, Abu Dhabi, U.A.E 44

45  Customers do not have to wait until the entire system is delivered. The first increment satisfies their main requirements so the software can be immediately used.  Early increments act as a prototype to help obtain requirements for later increments.  Lower risk of overall project failure.  The highest priority system services tend to receive the most testing. chapter 1:Introduction to Software Development Al Khawarizmi International College, Abu Dhabi, U.A.E 45

46  Increments should be relatively small ( not more than 20,000 lines of code) and each increment should deliver some system functionality. It may be difficult to map the customer's requirements onto increments of right size.  Difficult to identify common facilities that all increment require. chapter 1:Introduction to Software Development Al Khawarizmi International College, Abu Dhabi, U.A.E 46

47 Software engineers must behave in professionally responsible way. The areas in which standards in behavior should be considered are: 1-Confidentiality: Engineers should normally respect the confidentiality of their employees or clients whether or not a formal confidentiality agreement has been signed. 2- Competence: Engineers should not accept work which is beyond their competence. chapter 1:Introduction to Software Development Al Khawarizmi International College, Abu Dhabi, U.A.E 47

48 . 3-Intellectual property rights: Engineers should be aware of local laws such as patents, copyright, and so on. They should be careful to ensure the intellectual property of employers and clients is protected. 4-Computer misuse: Software engineers should not use their technical skills to misuse other people's computers. chapter 1:Introduction to Software Development Al Khawarizmi International College, Abu Dhabi, U.A.E 48


Download ppt "Module Code: CST 240 / BIT 233 Chapter 1: Introduction to Software Development Al Khawarizmi International College, Abu Dhabi, U.A.E."

Similar presentations


Ads by Google