Software Engineering SE PDF
Document Details
![JubilantPrudence9416](https://quizgecko.com/images/avatars/avatar-1.webp)
Uploaded by JubilantPrudence9416
ASTU
Martha. M.
Tags
Summary
This document provides an overview of software engineering concepts and methodologies including introductory topics, software definitions, and software development processes. It also covers Object Oriented Systems Development Methodology and other significant approaches. The file also includes examples of models like Waterfall, Prototyping, Iterative and Spiral Model. It is likely suitable for an undergraduate computer science course.
Full Transcript
Software Engineering Course code: CoSc 3061 Chapter One Introduction The main topics/contents covered under this chapter will be: Definition of Software Orthogonal view of software D...
Software Engineering Course code: CoSc 3061 Chapter One Introduction The main topics/contents covered under this chapter will be: Definition of Software Orthogonal view of software Definition of Software engineering Software dev't process model Object oriented system dev't methodology Introduction What is software? What are the two orthogonal view of software? What is software engineering? What is the difference between software engineering and computer science? What is the difference between system engineering and software engineering? 3/3/2024 Compiled By Martha. M. (MSc.) 2 What is Software Instructions (computer programs) that executed and provide desired features, function and performance, Data structures that enable the programs to adequately manipulate information, Documents that describe the operation and use of the programs/software, In generally, it’s is collection of computer programs, data and associated documentation such as requirements, design models and user manuals. 3/3/2024 Compiled By Martha. M. (MSc.) 3 Two orthogonal view of software A software development methodology is a series of processes leads to the development of an application. There are two orthogonal view of software development approaches/methods: 1) Traditional approach a collection of programs or functions and isolated data Programs are divided a number of functions focuses on the functions of the system moving from one phase to another phase is complex increases duration of project increases complexity 3/3/2024 Compiled By Martha. M. (MSc.) 4 Cont. 2) Object-oriented systems development approach data and functionality are put together in a single entity. focuses on object, classes, modules that can be easily replaced, modified and reused. moving from one phase to another phase is easier. decreases duration of project reduces complexity and redundancy 3/3/2024 Compiled By Martha. M. (MSc.) 5 What is software Engineering Software engineering is an engineering discipline that is concerned with all aspects of software production. Software engineers should adopt a systematic and organized approach to their work and use appropriate tools and techniques depending on the problem to be solved, the development constraints and the resources available. It’s the process of solving customers’ problem by the systematic development and evolution of large, high quality software system within cost, time and other constraints. 3/3/2024 Compiled By Martha. M. (MSc.) 6 Cont. Difference between software engineering and computer science Computer science is concerned with theory and fundamentals, whereas software engineering is concerned with the practicalities of developing and delivering useful software. The difference between system engineering and software engineering System engineering is concerned with all aspects of computer-based systems development including hardware, software and process engineering. Software engineering is part of system engineering process concerned with developing the software infrastructure, control, applications and databases in the system. 3/3/2024 Compiled By Martha. M. (MSc.) 7 Cont. Software products may be developed for a particular customer or may be developed for a general market: Generic - developed to be sold to a range of different customers e.g. PC software such as Microsoft office (like word or excel, etc.) Bespoke (custom) - developed for a single customer according to their specification. New software can be created by developing new programs, configuring generic software systems or reusing existing software. 3/3/2024 Compiled By Martha. M. (MSc.) 8 Software development process model Software process It is a set of related activities that leads to the production of a quality and effective a software product. These activities may involve the development of software from scratch in a standard programming language like Java or C. There are many different software processes but all must include four activities that are fundamental to software engineering: Software Specification - what does the customer needs (functionality of the software) and its development constraints. Software design and implementation- The software to meet the specification must be produced. Software Validation - software must be validated to ensure that it does meets what customer wants. Software Evolution - The software must evolve to meet changing customer needs. 3/3/2024 Compiled By Martha. M. (MSc.) 9 Software development life cycle Its set of activities and their relationships to each other to support the development of a software system. Software development life cycle has several clearly defined phases: 1) Requirements gathering: collect all relevant information from the customer regarding the software product to be developed. 2) Requirements analysis: identify all ambiguities and contradictions in the requirements and resolve them through further discussions with the customer & requirements properly understood. 3) Requirements specification: user requirements are systematically organized into a Software Requirements Specification (SRS) document like functional requirements, the nonfunctional requirements. 4) Design: The systems design process allocates the requirements to either hardware or software systems by establishing an overall system architecture. 3/3/2024 Compiled By Martha. M. (MSc.) 10 Cont. 5) Implementation: translate the software design into source code. 6) Integration and system testing: The individual program units or programs are integrated and tested as a complete system to ensure that the software requirements have been met. 7) Deployments: After testing, the software system is delivered to the customer that to preform required function 8) Maintenance: mean modification and upgrading the software when the need arises. Requirement gathering, analysis and specification are performed iteratively. Design, implementation, Integration and testing are done sequentially. 3/3/2024 Compiled By Martha. M. (MSc.) 11 Software process models 1. Waterfall 2. Prototyping 3. Spiral 4. Iterative 5. Incremental 3/3/2024 Compiled By Martha. M. (MSc.) 12 Water-fall Model 3/3/2024 Compiled By Martha. M. (MSc.) 13 Cont. The waterfall model progress flows from the top to the bottom. Waterfall model starts with feasibility study, which explains about the economical (cost), legal (political) studies and so on. The outcome of the feasibility study is “feasibility report “which acts as an input to the requirement and analysis phase. Each phase must be completed before the next phase can begin. Each and every phase has a defined output. The output of one phase acts as input to the next phase. This model is simple and easy to understand and use. 3/3/2024 Compiled By Martha. M. (MSc.) 14 Limitations of waterfall model Waterfall model works well for smaller projects where requirements are very well understood. It poor model for long and ongoing projects. Waterfall model is also known as “All-nothing” it means that the end user has a chance to see the output only at the end of the project. Water-fall model is a linear model. Once an application is in the testing stage, it is very difficult to go back and change something that was not well-thought in the first stage. 3/3/2024 Compiled By Martha. M. (MSc.) 15 Prototyping model Prototyping model: User interaction Agreed requirements Prototype development 3/3/2024 Compiled By Martha. M. (MSc.) 16 Cont. The project should start with the minimum requirements of the user, Based on the minimum requirements developers develop a prototype model. To overcome the limitation of the water-fall model, prototyping model is introduced which is also called as throw away prototyping. The prototype is given to the user to interact with it and the user will end intangible values. The user feels that as if he is using the complete project but it is just a model. 3/3/2024 Compiled By Martha. M. (MSc.) 17 Cont. During this phase, the developer will understand the rest of the requirements. The same process will continue until the user satisfies. Once the developer knows all the requirements the prototype will be throwaway. Preparing the prototype model it contains following phases: such as requirement analysis, design, coding and testing. Used for large and complex projects. 3/3/2024 Compiled By Martha. M. (MSc.) 18 Iterative model 3/3/2024 Compiled By Martha. M. (MSc.) 19 Cont. Iterative model is the combination of waterfall model and prototyping. The developer starts the project with some of the requirements in a prototype manner as the developer knows all the requirements of the project The project should contain the phases like: Planning requirements analysis Design Implementation Testing Deployment 3/3/2024 Compiled By Martha. M. (MSc.) 20 Spiral model Spiral model: 3/3/2024 Compiled By Martha. M. (MSc.) 21 Cont. Spiral model is a combination of water-fall model, prototyping model, iterative model and risk analysis factor. Unlike water-fall it is not linear it is spiral which is also known as Cartesian model which is divided into four quadrants. The first quadrant deals with the phases to evaluate the risk. The second quadrant deals with determining objectives. The third quadrant deals with planning next phase. The fourth quadrant deals to develop the product. 3/3/2024 Compiled By Martha. M. (MSc.) 22 Cont. The activities in this spiral model are organized as a spiral which consists of several cycles. Radius of the spiral explains about cost of the project. Angular of the spiral explains about the progress of the project. 3/3/2024 Compiled By Martha. M. (MSc.) 23 Incremental model This model interleaves the activities of specification, development, and validation. The system is developed as a series of versions (increments), with each version adding functionality to the previous version. The original project is divided into several increments/builds where each increment contains the phases like requirement analysis and specification, design, coding, testing, deployment and maintenance. The project can be completed within different schedules (increments). While user is working with the increment1 developed by a developer based on requirements. Again the developer will develop increment 2 by using the requirements which are known while working on increment1 by making use of the design 3/3/2024 Compiled By Martha. M. (MSc.) 24 Incremental model: 3/3/2024 Compiled By Martha. M. (MSc.) 25 Incremental model is used for more complicated systems. 3/3/2024 Compiled By Martha. M. (MSc.) 26 Advantages of Incremental Model Generates working software quickly and early during the software life cycle. This model is more flexible – less costly to change scope and requirements. It is easier to test and debug during a smaller iteration. In this model customer can respond to each built. Lowers initial delivery cost. Easier to manage risk because risky pieces are identified and handled during its iteration. 3/3/2024 Compiled By Martha. M. (MSc.) 27 Disadvantages of Incremental Model Needs good planning and design. Needs a clear and complete definition of the whole system before it can be broken down and built incrementally. Total cost is higher than waterfall model. 3/3/2024 Compiled By Martha. M. (MSc.) 28 Software process metrics Process metrics are measures of the software development process, such as overall development time and type of methodology used. Usually related to events or things that occur. Examples: # defects found in test, # requirements changes, # days to complete task … 3/3/2024 Compiled By Martha. M. (MSc.) 29 Cont. Software process metrics consists: Defect: in code or errors uncovered during each software engineering task are tracked. Reliability: - the probability that a program will perform its specified function for a stated time under specified conditions. Availability: - software provide service for user/customer effectively. Usability: is a measure of how easy it is to use a product to perform prescribed tasks. Maintenance: - software allow for maintenance, to add new feature. Management: software developed with min cost, min development time. Performance: - software perform task with acceptable performance. 3/3/2024 30 Object oriented system development methodology. It is a way to develop software by building self-contained modules or objects that can be easily replaced, modified, and reused. In an object-oriented environment, Software is a collection of discrete objects that encapsulate their data as well as the functionality to model real-world "objects.“ An object oriented yields important benefits to the practice of software construction. Each object has attributes and methods Objects are grouped into classes Object-oriented methods enable us to create sets of objects that works together to produce software that better model their problem domains. 3/3/2024 Compiled By Martha. M (MSc.) 31 Cont. The systems are easier to adapt changing requirements, easier to maintain, more robust, and promote greater design and code reuse. Why an object oriented? Easier to adapt to changes More robust Easier to maintain Promote greater design and code reuse Creates modules of functionality 3/3/2024 Compiled By Martha. M (MSc.) 32 Overview of the unified approach Unified Approach (UA) specifies the tasks or steps to develop an application. The UA consists of the following concepts: o Use-case driven approach o Utilizing the UML for modeling o Object oriented analysis o Object oriented design o Repositories of reusable classes and maximum reuse Incremental development and prototyping NB: An object-oriented philosophy (Reading Assignment) 3/3/2024 Compiled By Martha. M (MSc.) 33 Basic concepts of an object object has a collection of procedures or methods-things it can do-as reflected in its package of methods. It can represent anything or some real-world entity with which you can associate properties and behavior. Properties or attributes characterize the object, describing its current state. Behavior is the way an object acts and reacts, possibly changing its state. For example, a car has certain attributes; such as color, year, model, and price, and can perform a number of operations/methods, such as go, stop, turn left, and turn right. 3/3/2024 Compiled By Martha. M (MSc.) 34 For example, employee is an object, class employee declares that all its instances have a name, a date of birth, an address and a position. Car color year model price go() 3/3/2024 Compiled By Martha. M (MSc.) 35