0% found this document useful (0 votes)
204 views

SYIT Software Engineering Unit 1 Introduction, Software Requirements, Process, Models & Agile Notes

software engineering notes
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)
204 views

SYIT Software Engineering Unit 1 Introduction, Software Requirements, Process, Models & Agile Notes

software engineering notes
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
You are on page 1/ 21
syit SE Sem: 4 unit | Unit 1: Introduction, Software Requirements, Software Processes, Software Development Process Models and Agile Software Development DUCTION QU) What is Software Engineering? Ans) Software Engineering: J) Software Engineering is @ broad subject dealing with software development. 2) Software Engineering technology needs following features for any software: a) Modularity, b) Readability ‘) Simplicity «) Consistency 8) Modularity: G It deals with the development of modules (Black Box) Gi) Software modules are called black box because its intervals are intended to be seen by users ii) Creator publishes only what user needs to know and hides every other details . This concept is known as data hiding and encapsulation. bd) Readability: @ Programs can be made more readable in number of ways. Gi) Writing meaningfil comments is one way in which the user is able to ive clatity to the program so that it becomes self documenting, Gii) This will help the other people to follow the logic simply by reading the comments. ed By: Divya Shetty Page 1 syit SE Sem: 4 Unit-1 ©) Simplicity @ Its part of algorithm design in software development. @) Consistency: (i) Establish coding conventions and stick to them. Gi) Conventions must also be easy to recognize (i) It fosters readability and simplicity. 3) Software Engineering can be defined as > The application of systematic, disciplined and quantifiable approach to the development, operation and maintenance of software. > tis the discipline that aims to provide methods and procedures for systematically developing industrial strength software 4) Softivare Eigineering addiésses economic, design, maintenance ahd implerfentation aspects of the software Q2) Explain Software Development Life Cyele Ans) Software Development Life Cycle : 1) In SDLC the first step is the recognition of the need 2) In this phase, first the problem is identified and if any problem exists, itis sdlved For eg. To improve a system, The supervisor purchases the system and goes for initial investigation or preliminary survey is cattied out so as to find if there is any other alternative to solve the problem, But sill if the problem is serious management decides to hire an analyst to solve the problem. Ifthe analyst is hired form outside he would see for the objective of the problem and also the scope then the analyst makes the rough estimate of project cost and then goes for feasibility study. 3) But before the feasibility stady one more phase exists ie a) Impetus for system change: (@) Change can be environmental based, can originate fiom customers, vendors and govt sourees et. SS By: Divya Shetty Page 2 syit SE Sem: 4 Unit-1 i) Investigation of the problem leads to another problem which is the first step of SDLC. ii) After the impetus for system change the next phase is feasibility study. b) Eeasibility Study; (@) In feasibility study, the results of the initial investigation are taken into consideration. Gi) Itis mainly the ability to meet the users need such as what are the user demonstrable needs, Is the problem worth solving and how can the problem be redefined. (iii)These all above questions depends on the investigation and evaluation of the problem, description of the system, cost of the system and final selection of the best system. Gv) Dapending on the prOblem fist the information is improved, costa and benefits are estimated. (¥) The first step in feasibility study isto preparé a formal document which/gives the detailed nature and seqpe of proposed natu (vi) These all give what is known and what is going to be done (vit) The next step of logical aspects of life cycle is analysis. ©) Amalysis: @ Analysis gives the detail study of present system. i) Ttalso gives the hint so as what must be done to solve the problem (ii) It also defines the boundaries of the system and finds whether the proposed system contains any other system, (iv) Data, decision points and transactions are collected and by this logic model is prepared along with DFD. (v) By all these information analyst gets the understanding what is to be done and how the problem is solved. ‘These were all the logical aspects of SDLC eed By: Divya Shetty Page3 syit SE Sem: 4 Unit-1 ‘The physical aspects of SDLC are given below: 4) Software Design ( Coding and Testing): @ Designing is a creative and challenging phase of system life cycle, (ii) Italso means the final system and the process by which system is developed (ii) Here the blue print of the system is ready but the key question arises as to how the problem must be solved. Gv) The first step in Software development design is how the output is to be produced and for that input data andl master files are designed. (¥) For handling the above process coding (program) is to be constructed and this phase is known as coding and testing phase (vi)If the design is accepted test prografit is cartied and then it goes for ‘tmplementation phaser ©) Implementation: () Itis concerned with users training file eonvetsion and site preparation. (i) User acceptance is tested, Giiy Extensive user training, system testing, readiness and accuracy ofthe system to access, update and.rétrieve the data from files are all required iv) And if the program is naming successfully itis okay otherwise system has/to go for error checking and diagnostic procedures are cartied out to correct errors, {Post Implementation and Maintenance Phase: @ Afier the installation phase is completed and user staffs adjusted the work is almost done, Gi) System enhancements are carried due to user priority, environmental factors and changes in organizations requirements, SS By: Divya Shetty Page 4 syit SE Sem: 4 Unit-1 SOFTWARE REQUIREMENTS Q3) Explain functional and nonfunctional requirements Ans) Functional Requirements: 1) Fumetional requirements specify which outputs should be produced from the given inputs, 2) They describe the relationship between the input and output of the system. 3) A detailed description of all the data inputs and their source, the units of measure and the range of valid inputs must be specified for each functional requirement. 4) Software Engineering is a broad subject dealing with software development. 5) Examples ~a) Search option given to user to search from various invoices ') User should be able to mail any report to management. 6) All the operations to\be performed on the inpntGata to obtain the ottput shotild be specified which includes specifying the validity cheeks on the input and output data, parameters affected by the Operation and equations or other logical operations that mist be used to transform the inputs into corresponding outputs. 7) Functional requirements must clearly state what the system should do if error or abnormal situations occurs. 8) It should also specify the behavior of the system for valid and invalid outputs. ‘Non. Functional Requirements: 1) Non-Funetional requirements of the system are performance, security, safety, availability ‘and maintainability 2) Performance means speed of processing, response time to query and access time to database 3) Security means protection against exposure to sensitive data and information. 4) Safety includes tisk analysis, early warning ete: : Divya Shetty Page 5 syit SE Sem: 4 Unit-1 Q4) Write a note on user requirements Ans) User Requirements: 1) User requirements are the statements written in natural language plus diagrams of the services and its operational constraints 2) Itis basically written for customers. 3) User requirements are read by client managers, system end user, client engineers, contract managers and system architects 4) It should describe fimetional and non fimectional requirements so that they are understandable by system users who don’t have detailed technical knowledge 5) User requirements are defined using natural table and diagrams, ©) User requirements are high level statements‘6f What the system should do. QS) Write a note on system requirements Ans) System Requirements: 1) System requarements are the structured doctuments setting out detailed description of the system@ervices. 2) Itis written as a contract between client and contractor 3) System requirements are read by system end users, client engineers, system arehitects and. software developers, 4) It gives more detailed specification of user requirements, 5) It serves as a basis for designing the system, Q6) Write a note on interface specification Ans) Interface Requirements: 1) Interface specification is a part of the requirements specification. 2) There are 3 types of interface specification a) Procedural interfaces ES wewd By: Divya Shetty Page 6 syit SE Sem: 4 Unit-1 b) Data structures that are exchanged ©) Data representations 3) Formal notations are an effective technique for interface specification. Q7) Write a note on documentation of software requirements Ans) Documentation of Software Requirements: 1) Itis necessary to organize the requirement documents as sections and subsections, 2) SRS (Software Requirement Specifications) is written at the end of the requirement elicitation and analysis modeling, 3) SRS written in a text narrative supported by graphical model, system charts and high level pseudo programs in natural English, 4)” A good SRS document should have following characteristics: Clarity, Correctness, Completeness, Consistengy, Modi fiability, Traceability, Feasibility and Testability. 5) General structure of SRS is given below! os, Acroayms, and Abbreviation 14 References 15 Overview uct Perspect ee By: Divya Shetty Page 7 syit SE Sem: 4 Unit-1 SOFTWARE PROCESSES Q8) Explain process and project Ans) Software Process: 1) Software Process refers to the methods for developing software. 2) A software process is a set of activities with ordering constraints among them such that if the activities are performed properly and in accordance with the ordering constraints the desired result is produced whereas the desired result ineludes high quality and productivity. 3) A process is a sequence of steps performed for a given purpose 4) A software project is one instance of this problem, and the development process is what is used to achieve this purpose. Sy The softwe process providés the Framework from which a plan for software development can be established. 6) A process i$ a means to reach the goals of high quality, low cost, and low cyclé time, and a process model provides a progess structure that is well suited for a class of projects 7) A “process” has an objective that is typically defined aromnd the ongoing operation of the process’ whereas a “project” has an objective or outeome to be accomplished and the project ends when that ebjeetive is accomplished. 8) A “process” is generally ongoing and doesn’t normally have an end whereas, a “project” has a beginning and an end. 9) A “process” is a repetitive sequence of tasks and the tasks are known at the outset since itis repetitive whereas the sequence of tasks in a “project” is not normally repetitive and may not be known at the outset of the project. Q10) Write a note on Component Software Process Ans) Component Software Process: J) The process that deals with the technical and management issues of software development is called software process 2) There are two major components ina software process—a development/engineering process and a project management process SS By: Divya Shetty Pages syit SE Sem: 4 Unit-1 X 4 ‘The development process specifies all the engineering activities that need to be perfonmed, whereas the management process specifies how to plan and control these activities so that cost, schedule, quality, and other objectives are met Effective development and project management processes are the key to achieving the objectives of delivering the desired software satisfying the user needs, while ensuring high produetivity and quality. A software process itself is a dynamie entity, as it must change to adapt to our increased understanding about software development and availability of newer technologies and tools, The basic objective of the process management process is to improve the software process i.e. The capability of the process to produce quality goods at low cost is, improved. In a typical project, development activitiés are performed by programmers, designers, Aestefs, etc., the project management process activities are performed by the project ‘management, configuration contral progess activities are performed by a group generally called the configuration controllers ‘The process management process activities are performed by the software engineering process group (SEPG). Software Process Product Process Engineering Management Process Process Development —_Project Software Process Management — Configuration Process © Management Process Figure 1: Software Process Page syit SE Sem: 4 Unit-1 SOFTWARE DEVELOPMENT PROCESS MODELS Q10) Explain Waterfall model Ans) Waterfall model: 1) Waterfall model is sometimes called as linear sequential model or classic life cyele model 2) This model suggests a systematic sequential approach for software development that begins at system level & progress through analysis, design, coding, testing and maintenance System / Info Engineering Analysis | Design +f Testing + Maintenance General Overview of "Watexfall Model Reauirement gathering] sed savas Speen Doi Iimplementetion im Testing — is Figure 2: Sequential Model/ Waterfall Model By: Divya Shetty Page 10 syit SE Sem: 4 Unit-1 a) System Information Engineering: > Because software is always a part of lange system, work begins by establishing the requirements for all system elements & then allocating subset of the sequence to the software b) Software Requirement Analysis: > The requirement gathering process is intensified by focusing on software > Software Engineer’ Analyst must understand the information as well as required funetion, behavior, performance and interface so as to build the software. > Requirements for both the systems and software are documented and are given to the customer, ©), Design > Software design is actually multistep process that foctises of fottt distinat attributes of a programi.e. Data Structure, Software Architecture, Interface Representation and Procedural Details, > The design process translates the requirements into representation of the system software, @ Code Generation: > The design must be translated into machine readable form ©) Testing: > Once coding has been generated testing begins. > The test process focuses on the logical into software ensuing that all statements have been tested. f) Support/ Maintenance: > Software will undergo change before it is delivered to the customer. (External Environment) Page 11 syit SE Sem: 4 Unit-1 Advantages of waterfall model; a) Simple and easy to understand and use. b) Phases are processed and completed one at a time. ©) Works well for smaller projects where requirements are very well understood Disadvantages of waterfall model: ®) Once an application is in the testing stage, it is very difficult to go back and change something that was not well-thought out in the concept stage. b) High amounts of risk and uncertainty. ‘9 Poor model for long and ongoing projects. Not suitable for the projects where requirements are at a moderate to high risk of changing, ‘When to use the water! od ay Reghirements are vety well known, clear and fixed. b) Ample resources with required expertise are available freely © The projectis short. QU1) Explain Prototype model Ans) Prototype Model: 1) Often a customer defines a set of general objectives for software but does notidentify detailed input processing or output requirements 2) Prototype model begins with requirement gathering, 3) The developer and the customer meet and define the overall objective of software identify what type of requirement are known which can result into a quick design. 4) The quick design focuses on the representation of those aspects of software that will be visible to customer/ user 5) Example: Input approaches /output format. ©) Quick design needs to construct a prototype. 7) The prototype is evaluated by customer/user 50 as to refine the requirements for the software to be developed 8) Prototype is used to satisfy the needs of the customer which at the same tune enabling the developer to understand what needs to be done. SS : Divya Shetty Page 12 syit SE Sem: 4 Unit-1 9) The prototype serves as a mechanism for identifying the software requirement 10) Working prototype is built, the fragments are collected & the applied tool enables the ‘working program to be generated quickly, 11) The user can feel about how the actual system looks, Listen to Build/Reverse ++ customer Mock up Customer test driver mock up Figure 3: Prototype Model Q12) Explain Iterative Model Ans) Iterative Model: 1) Aniterative model is also known as ineremental model. 2) Itis.a cyclic software development process developed in response to the wealenéss of the waterfall model, 3) It starts with the initial planning & ends with the deployment with the cyclic interaction in between 4) Sequence for incremental model are as follows: a) _Inrequirement phase, the requirements for software are gathered & analyzed. b) Indesign phase, a software solution is designed to meet the requirements which may be new design or an extension of an earlier design. ©) In implementation & test phase the software is coded integrated & tested 4) In review phase software is evaluate, current requirements are reviewed, changed and addition to requirements are proposed. : Divya Shetty Page 13 syit SE Sem: 4 Unit-1 5) For each cycle of the model, a decision has to be made has to whether the software produced by the eyele will be discarded or kept as a starting point for the next eyele which is required to as incremental prototyping. Implementation & Testing Figure 4: Iterative Model Q13) Explain Rational Unified Process Ans) Ratio Unified Proce 1), Rational Unified Process is a software engineering process. 2) It provides a disciplined approach to assign tasks and responsibilities within a development organization. 3) Its goal is to ensure the production of high quality software that meets the needs of its end users, within the predictable schedule and budget. 4) Itisa process product developed and motioned by rational software. 5) It enhances team prodnetivity by providing every team ember with easy access toa knowledge base with guidelines, templates and tool mentors for all eritical development activities. 6) Itactivates creates and maintain models. 7) It isa guide for how to effectively use the Unified Modeling Language (UML) which is a industry standard language that allows us the clearly communicate requirements, architectures and designs 8) _Itis supported by tools that are used to create models. : Divya Shetty Page 14 syit SE Sem: 4 Unit-1 ) Itis like an online mentor that provides guidelines, templates and examples for all aspects and stages of program development. Q14) Explain RAD Model Ans) RAD Mod RAD model is Rapid Application Development model. It isa type of incremental model. In RAD model the components or functions are developed in parallel as if they were mint projects The developments are time boxed, delivered and then assembled into a working prototype. This can quickly give the etistomer something to see and use and to provide feedback régarding the delivery and their requirements. Rapid change and development of the prodiit is possible usih this ndthoddlogy” This methodology allows validation of technology risks and a rapid response to changing customer requirements. Dynamic System Development Methodology [DSDM] is a refined RAD process that allows controls to be put inplace in order to stop the process from getting out of contol. The customer gets early visibility of the product, can provide feedback on the design and can decide, based on the existing functionality, whether to proceed with the development, ‘what fimetionality to include in the next delivery cycle or even to halt the project if itis not delivering the expected value Eigure 5: RAD Model Ed By: Divya Shetty Page 15 syit SE Sem: 4 Unit-1 Advantages of the RAD model a) Reduced development time. ) Increases reusability of components ©) Quick initial reviews occur @) Encourages customer feedback © Integration from very beginning solves a lot of integration issues, Disadvantages of RAD model: 8) Depends on strong team and individual performances for identifying business requirements, by Requires highly skilled developers/designers Q15) Explain Time Boxing Model Ans) Time Boxing Model 1) Inthe time boxing model, the basic unit of dévelopmentis a:time-boxewhich is Of fixed curation. 2) Since the duration is fixed, a Key factor in selecting’the requirements or features to be built in a time box is what can be fit into the time box 3), Bachutiine box is divided into,a Sequence of stages, liKé in the waterfall médel 4) Each stage performs some clearly defined task for the iteration and produces a gleatly defined output. 5) The model also requires that the duration of each stage, that is, the time it takes to complete the task of that stage, is approximately the same. 6) Furthermore, the model requires that there be a dedicated team for each stage. Timeboxing Model ED ‘= --ap ™ ea-— Gp a ea-—- Gp Figure 6: Timneboxing Model od By: Divya Shetty Page 16 syit SE Sem: 4 Unit-1 Advantages of the Timeboxing model: 8) Speeds up the development process and shortens the delivery time b) Well suited to develop projects with a number of features in shott time period Disadvantages of Timeboxing model: a) Depends on strong team and individual performances for identifying business requirements b) Requires highly skilled developers/designers, AGILE SOFTWARE DEVELOPMENT Q16) What do you mean by Agile Methods Ans) Agile Methods: 4) Agile methods are increméntal development methods that focus on rapid development, frequent releases of the software, reducing pfocess overheads and:produeing high quality code. 2) Agile methods involve the customer directly in the de¥elopment process. 3) Agile methods rely on an incremental approaehito software specifi¢ation, development anddélivery 4) They ate intended to deliver working software quickly to customer who can then propose new and changed requirements to be included in the later iteration of the system. 5) Agile process models are designed to address four issues 6 They are a) Importance of self organizing teams that have control over the work they perform b) Communication and collaboration between team members & between practitioners and their customer ©) Arecognition that change represents an opportunity 4) Anemphasis on rapid delivery of software that satisfies the customer 7) Principles of Agile Methods are a) Customer Involvement : Customer should be closely involved throughout the development process b) Inctemental Delivery’ Software is developed in increments with the customer specifying the requirements to be inchtded in each increment Ed By: Divya Shetty Page 17 syit SE Sem: 4 Unit-1 ©) Embrace Change: Expect the system requirements to change and hence design the system to accommodate theses changes. @) Maintain Simplicity : Focus on simplicity in both the software being developed and in the development process. ©) People not process’ The skills of the development team should be recognized and not exploited, 8) Advantages include improved utilization of resources, better quality of deliverables due to the involvement of customer. Q17) Explain extreme programming (XP) Ans) Extreme programming: (XP) 1) Extreme programming is a well known agile'fiiéthod that integrates a range of good programming practices such asrequent release of the software, continuous software improvement and customer participation in the development team 2) XPis organized into four framework activities! a) Planning b) Design ©) Coding @eTesting 3) In XP requirement are termed as scenario (User Stories) which are implemented directly as a seties of tasks. 4) Programmers workin pair and develop tests for each task before waiting the code. 5) All tests rust be successfully executed when new code is integrated in to the system, 6) There is a short gap between releases of the system Figure 7: XP Release Code Develop, integrate lest software Page 18 syit SE Sem: 4 Unit-1 9) From the figure given above: 1) Incremental development is supported through small frequent release of the system. b) Ifthe story requires more than three development weeks, the customer is asked to split the story into smaller tasks (Stories) ©) Customer and the XP team work together to decide how the group stories into next releases, ® Then they develop, integrate and test the software, ©) After rigorous operation the day has come to release the software. And the final step is to evaluate the system. Q18) Explain Plan-driven and Agile development Ans) Plan-driven and Agile development: Plan Driven: 1) A plan-driven approach to software engineéfing is baSed atotind separate development stages with the outputs to be produced at each of these stazes planned in advance 2) Not necessarily waterfall model — planedriven, incremental development is possible, 3) teration/occurs within activities Agile development: 4) Deliver ideally every 2-3 weeks. 5) Specification, design, implementation and testing are inter-leaved and the outputs from the development process are decided through a process of negotiation during the software development process. ©) Implementation stats earlier than in all other modem life-cycle models as considerably Jess emphasis is given on analysis and design, By: Divya Shetty Page 19 syit SE Sem: 4 Unit-1 Q19) Explain Agile Project Management Ans) Agile Project Management: 1) Agile Project Management (APM) is an iterative approach to planning and guiding project processes, 2) An Agile project is completed insmall sections, These sections are called iterations. 3) Agile project methodology breaks down projeets into small pieees that are completed in ‘work sessions that run from the design phase to testing and quality assurance (QA). 4) ‘These sessions are often called sprints, the term for iteration used in one specific and popular Agile development method known as Serum 5) The Scrum approach is a general agile method but its focus is on managing iterative development rather than specific agile practices, 6)_The#e Wie three phases in Scrum? a) The initial phase is an outline planning phase where you establish the general objectives for the projeet and design the software architeéture: 1) This is followed by a series of sprint eyeles, where'each eyele develops an increment of the system. }eDle project clostue phase wraps up the project, éOmpletes required décumentation and assesses the less6fis leamed from the project. 7) Inagile projects, itis everyone's (developers, quality assurance engineers, designers, etc.) responsbility to manage the project to achieve the objectives of the project. 8) The agile project manager plays a key role in agile team in order to provide the resources, keep the team motivated, remove blocking issues, and resolve impediments as early as possible 9) An agile project manager is a mentor and a protector of an agile team, rather than a manager. 220) Explain Scaling Agile Methods Ans) Scaling Agile Methods: 1) Scaling up agile methods involves changing these to cope with larger, longer projects where there are multiple development teams, perhaps working in different locations. ed By: Divya Shetty Page 20 syit SE Sem: 4 Unit-1 2) Scaling up’ is concemed with using agile methods for developing large software systems that cannot be developed by a sunall team. 3) ‘Scaling ont” is concerned with how agile methods can be introduced across a large organization with many years of software development experience. 4) When scaling agile methods it is essential to maintain agile fidamentals Flexible planning, frequent system releases continuows integration, test-driven development and good team communications. 5) An Agile project is completed in small sections. These sections are called iterations. By: Divya Shetty Page 21

You might also like