Presentation is loading. Please wait.

Presentation is loading. Please wait.

CHPATER Agenda Software Development  Challenges of Software Development Software Engineering Software Development Life Cycle  Water-fall.

Similar presentations


Presentation on theme: "CHPATER Agenda Software Development  Challenges of Software Development Software Engineering Software Development Life Cycle  Water-fall."— Presentation transcript:

1 CHPATER 4 @geoffjuma

2 Agenda Software Development  Challenges of Software Development Software Engineering Software Development Life Cycle  Water-fall model  Iterative  Rapid Application Develop Object-Orientation software Design

3 Forward The idea about OOP II is to design and develop large and complex applications using Object Orientation. Large and complex software applications should be designed in a way that reduces the complexities and enhances quality. In this regard, software engineers face several challenges in designing such applications.

4 Challenges of Software Development Complexity of Software Systems  Solving a complex human problem one line of code at a time!  Every line of code is a potential point of failure  How critical is the software and how much testing is required? Longevity and evolution of Software Systems  Adaptability – stand the test of time

5 Challenges in Software Development (contd) High user expectations Users mostly don't know what they want until they see it Users often switching goal posts Should you ignore new requirement

6 Microsoft vs GM duel If GM had developed technology like Microsoft, we would all be driving cars with the following characteristics:  For no reason whatsoever, your car would crash twice a day.  Occasionally your car would die on the freeway for no reason. You would have to pull over to the side of the road, close all of the windows, shut off the car, restart it, and reopen the windows before you could continue. For some reason you would simply accept thiss.  Every time GM introduced a new car, car buyers would have to learn to drive all over again because none of the controls would operate in the same manner as the old car

7 Software Engineering Should software development be an engineering field? Programming? Engineering across all disciplines is concerned with the design and development of high quality and useful products in a cost effective way. An Engineer defines activities and products  Defines the software development processes, which define the order for carrying out the development activities and the criteria for the deliverables of the activities

8 Software Quality Formally, Software quality measurement is about quantifying to what extent a system or software possesses desirable characteristics According to Feigenbaum "Quality is a customer determination, not an engineer's determination, not a marketing determination, nor a general management determination. It is based on the customer's actual experience with the product or service, measured against his or her requirements -- stated or unstated, conscious or merely sensed, technically operational or entirely subjective -- and always representing a moving target in a competitive market"

9 Software Quality 1.Functional Quality – meets the functional expectations as defined by the user.  A function is described as a set of inputs, the behavior, and outputs.  Measured through testing 2. Structural Quality – how the software meets the other requirements (non-functional) that support the delivery of the core requirements  such as robustness or maintainability, the degree to which the software was produced correctly.

10 CISQ's Quality Model Consortium for IT Software Quality defines the following attributes:  Reliability – An attribute of resiliency and structural solidity. Fault-tolerant. Stable to changes.  Efficiency - The source code and software architecture attributes are the elements that ensure high performance once the application is in run-time mode.  Security - A measure of the likelihood of potential security breaches due to poor coding practices and architecture  Maintainability - Maintainability includes the notion of adaptability, portability and transferability (from one development team to another)

11 Software Development Activities Requirements Analysis Design Implementation and unit testing Integration and system testing Maintenance

12 Requirements Analysis Goals  To define the problem to be solved, i.e., to establish the functions, services, and constraints of the software to be developed. Deliverables  Requirements specifications itemizing the functional and nonfunctional requirements, called system [requirements] specifications

13 Design Goals  To construct a solution to the problem by establishing an overall architecture of the software, by partitioning the software into components, and by identifying the relationships and dependencies among them. Deliverables  System design document and detailed design document, along with various diagrams.

14 Implementation and Unit Testing Goals  To implement the software design and test each individual component to ensure that each unit functions properly with respect to its specification before the units are integrated Deliverables  Source code and unit testing documentation

15 Integration and System Testing Goals  To integrate the individual components and test the system as a whole to ensure that the entire software system functions properly with respect to its specification Deliverables  System testing documentation

16 Maintenance Goals  To improve the system after it is already in use, e.g., correcting bugs, improving performance, enhancing functions or services, and adapting to new environments. Deliverables  New version and documentation of changes Longest and most costly activity in the software life cycle!

17 Software Development (Life Cycle) Models Waterfall Model Iterative Model Rapid Development Model

18 Waterfall Model

19 Characteristics  Sequential  Phase based  Document Driven Benefits  Discipline and Formality Drawbacks  Linear. Rigid. Difficulty in making changes  Users often don't know what they need beforehand

20 Iterative Model

21 Iterative/Agile Model Repetitive and incremental Customer feedback occurs simultaneously with the development process Critics claim that the agile model is too "unstructured". Additionally, creating a quote is challenging since the scope of work is not clearly defined at the beginning of the project.

22 RAD The RAD (Rapid Application Development) model is based on prototyping and iterative development with no specific planning involved. Rapid application development (RAD) is a software development methodology that uses minimal planning in favor of rapid prototyping The process of writing the software itself involves the planning required for developing the product

23 What contributes to maintainability? Maintenance costs usually exceed development costs. Reliability is attained through repeated corrections Software must be maintainable Maintainability contributors?  Flexibility  Simplicity  Readability (understandability)

24 Object Orientation Modeling the real world  A software system provides a solution to a problem in the real world It consists of two essential components:  Model: abstraction of a part of the real world  Algorithm: captures the computations involved in manipulating or processing the model. AlgorithmModel Software system Real world Abstraction Interpretation

25 Why OO Model? Possible to directly represent real world objects in the computer system Thus, solves the so-called impedance mismatch problem. Software system Real world Data-oriented model Software system Real world Object-oriented model

26 OO Development Approach  Focuses on improving the maintainability and reusability of software systems through a set of techniques, notations, tools, and criteria. Activities  Conceptualization  Object-oriented analysis and modeling  Object-oriented design  Implementation  Maintenance


Download ppt "CHPATER Agenda Software Development  Challenges of Software Development Software Engineering Software Development Life Cycle  Water-fall."

Similar presentations


Ads by Google