Concept Based Notes Software Engineering

3y ago
53 Views
5 Downloads
1.51 MB
128 Pages
Last View : 12d ago
Last Download : 3m ago
Upload by : Luis Wallis
Transcription

Biyani's Think TankConcept based notesSoftware EngineeringBCA Part-IIIPallavi GoreRevised By: Kritika SaxenaDeptt. of Information TechnologyBiyani Girls College, Jaipur

2Published by :Think TanksBiyani Group of CollegesConcept & Copyright :Biyani Shikshan SamitiSector-3, Vidhyadhar Nagar,Jaipur-302 023 (Rajasthan)Ph : 0141-2338371, 2338591-95 Fax : 0141-2338007E-mail : acad@biyanicolleges.orgWebsite :www.gurukpo.com; www.biyanicolleges.orgISBN: 978-93-82801-77-1First Edition : 2009Second Edition: 2010Price:While every effort is taken to avoid errors or omissions in this Publication, any mistake oromission that may have crept in is not intentional. It may be taken note of that neither thepublisher nor the author will be responsible for any damage or loss of any kind arising toanyone in any manner on account of such errors and omissions.Leaser Type Setted by :Biyani College Printing Department

Software Engineering3PrefaceIam glad to present this book, especially designed to serve the needs of thestudents. The book has been written keeping in mind the general weakness inunderstanding the fundamental concepts of the topics. The book is self-explanatoryand adopts the “Teach Yourself” style. It is based on question-answer pattern. Thelanguage of book is quite easy and understandable based on scientific approach.Any further improvement in the contents of the book by making corrections,omission and inclusion is keen to be achieved based on suggestions from thereaders for which the author shall be obliged.I acknowledge special thanks to Mr. Rajeev Biyani, Chairman & Dr. SanjayBiyani, Director (Acad.) Biyani Group of Colleges, who are the backbones and mainconcept provider and also have been constant source of motivation throughout thisEndeavour. They played an active role in coordinating the various stages of thisEndeavour and spearheaded the publishing work.I look forward to receiving valuable suggestions from professors of variouseducational institutions, other faculty members and students for improvement of thequality of the book. The reader may feel free to se nd in their comments andsuggestions to the under mentioned address.Author

4SyllabusBCASoftware EngineeringSoftware Characteristics, Components, Applications, Software process Models:Waterfall, spiral, Prototyping, Fourth Generation Techniques, Concepts of ProjectManagement, and Role of Metrics & Measurements.S/W Project planning Objectives, Decomposition techniques: S/W Sizing, Problembased estimation, Process based estimation, Cost Estimation Models: COCOMOModel.S/W Design: Objectives, Principles, Concepts, Design methodologies Data design,Architectural design, procedural design, Object oriented conceptsTesting fundamentals: Objectives, principles, testability, Test cases: White box & Blackbox testing strategies: verification & validation, unit test, integration testing,validation, testing, system testing

Software Engineering5ContentS. No.1.2.Name of TopicIntroduction to Software Engineering1.1Software Definition1.2Software Engineering1.3Software Characteristics1.4Software Components1.5Software Applications1.6Software Development Life Cycle1.7Prototyping Model1.8Spiral Model1.9Forth Generation Techniques1.10Knowledge Engineering1.11End-User DevelopmentProject Management2.1Definition of project Management2.2Role of metrics and Measurement2.3Project metrics2.4Process Metrics2.5Projection2.6S/W Requirement2.7Horizontal and Vertical partitioning2.8SRS2.9Information flow model2.10Data Model Analysis2.11Object Oriented Analysis

63.Software Project Management3.1Charters tics of s/w Product3.2Project table3.3Time Box3.4Decomposition technique3.5Software sizing and size Metrics3.6Cost estimation3.7Cost factor3.8COCOMO Model3.9Time line chart3.10Project Monitoring3.11Project control3.12Cost Control

Software Engineering7S. No.4.Name of TopicSoftware Quality & Testing4.1Software Quality Assurance4.2Software Testing4.35.6.(a)White Box(b)Black BoxDebuggingSoftware Cost & Time Estimation5.1Function Points5.2Cost Estimation(a)COCOMO(b)Putnam-Slim(c)Watston & Felix(d)Rayleigh Curve5.3Delphi Techniques5.4Analog MethodSoftware Design6.1Yourdon – Structure Chart6.2Gane & Sarson6.3Warnier - Orr6.4Booch Approach6.5Verification & Validation6.6Documentation6.7Design Matrices7.6.8Role of CASE ToolsUnsolved Papers 2011 – 20068.Glossary9.Bibliography

8Chapter-1Introduction to Software EngineeringQ.1Define the term Software.Ans.: In general, software can be defined as a collection of computer programs,which in turn is a collection of commands.But there is a distinction between a program & a programming systemproduct. Unlike a program which is normally used by its author, a productrequires documentation to help users which are other than the developers ofthe system.To conclude we can define software as the collection of computer programs,procedures, rules & associated documents & data.Q.2what is Software Engineering?Ans.: Software Engineering is the discipline that aims to provide methods &procedures for developing software system.It is the application of a systematic disciplined & quantifiable approach ofdevelopment & maintenance of software. It includes different techniques &procedures of ―Software development process to improve the reliability ofsoftware‖.In other words, software Engineering is the application of science & maths bywhich the capabilities of computer equipments are made useful to man viacomputer programs.Q 3. Explain the Software Characteristics?Ans. The key Characteristics of Software are as follows1. Most software is custom build, rather than being assembled from existingcomponents:- Most software continue to be custom built, although recentdevelopments tend to component based. Modern reusable componentsencapsulate both data and the processing applied to data, enabling thesoftware engineer to create new applications from reusable part.

Software Engineering92. Software is developed or engineered; it is not manufactured in the classicalsense-Although some similarities exist between software development andhardware manufactured, the two activities are fundamentally different. Inboth activities, high quality is achieved through good design, but themanufacturing phase for hardware can introduce quality problems that arenonexistent for software. Both activities depend on people, but therelationship between people applied and work accomplished is entirelydifferent. Both require the construction of a ―product‖. But the approaches aredifferent.3. Software is flexible- A program can be developed to do almost anything.sometimes, this characteristics may be the best and may help us toaccommodate any kind of change.4. Software does not wear out- There is a well known ―Bath-tub curve‖ inreliability studies for the hardware product.There are three phases for the life of a hardware product. Initial phase is burnin phase, where failure intensity is high. It is expected to test the product in theindustry before delivery. Due to testing and fixing faults, failure intensity willcome down initially and may stabilize after certain time. The second phase isthe useful life phase where failure intensity is approximately constant and iscalled useful life of a product. After few years, again failure intensity willincrease due to wearing out of components. This phase is called wear outphase.Q 4.Define the Software Components?Ans. A software component is a system element offering a predefined service andable to communicate with other components. Clemens Szyperski and DavidMesserschmitt give the following five criteria for what a software componentshall be fulfill the definition:1. Multiple-use2. Non-context-specific3. Composable with other components4. Encapsulated i.e. ,non-investigable through its interfaces5. A unit of independent and versioning.A simpler definition can be: a component is an object written to aspecification. It does not matter what the specification is; COM, JavaBeans etc,as long as the object adhere to the specification.It takes significant effort and awareness to write a software component thateffectively reusable. The component needs:To be fully documented ;More through testing;

10Robust input validity checkingTo pass back useful error messages as appropriate;To be build with an awareness that it will be put to unfore seen uses;A mechanism for compensating developers who invest the effort impliedaboveQ 5. Define the Software Applications?Ans. Software applications are grouped into eight areas for convenience as shownin fig.1. System Software- System Software is a collection of programs used to runthe system as an assistance to use other software programs. The compilers,editors, utilities operating system components, drivers and interfaces areexamples of system software.2. Real-time Software- Real-time Software deals with changingenvironment. First it collect the input and convert it from analog to digital,control component that responds to the external environment, perform theaction in the last.3. Embedded Software- Software, when written to perform certain functionsunder control conditions and further embedded into hardware as a part oflarge systems, is called Embedded Software.4. Business Software- Software designed to process business applications iscalled business software. Business software could be a data andinformation-processing application.5. Personal Computer Software- Word processing, spread sheets, computergraphics, multimedia, entertainment, database management, personal andbusiness financial applications, external network or database access areonly a few of hundreds of applications.6. Artificial Intelligence Software- Artificial Intelligence Software uses nonnumerical algorithms, which use the data and information generated inthe system, to solve the solving problems.Applications within this area include robotics, expert system, patternrecognition, artificial neural networks, theorem proving and gameplaying, signal processing software.7. Web-Based Software- Web-Based Software is the browsers by which webpages are processed i.e., HTML, Java, CGI, Perl, DHTML etc.8. Engineering and Scientific Software - Design, engineering of scientificsoftware‘s deal with processing requirements in their specific fields. Theyare written for specific applications using the principles and formulas ofeach field.These software‘s service the need of drawing, drafting, modeling, leadcalculations, specifications-building and so on. Dedicated software‘s areavailable for stress analysis or for analysis of engineering data, statistical

Software Engineering11data for interpretation and decision-making. CAD/CAM/CAE packages,SPSS, MATLAB, Circuit analyzers are typical examples of such software.Q.6What is Software Development Life Cycle?ORExplain in detail the different stages of SDLC.Ans.: It is a concept of providing a complete support to a software productthroughout all the stages of its evolutionThe systems development life cycle (SDLC) is a conceptual model used inproject management that describes the stages involved in an informationsystem development project, from an initial feasibility study to maintenanceof the completed application.The SDLC Waterfall Model :Small to medium database software projects are generally broken down intosix stages:Diagram : Waterfall ModelHere the outputs from a specific stage serve as the initial inputs for thefollowing stage.(1)Planning Stage :The planning stage establishes a bird's eye view of the softwareproduct, and uses this to establish the basic project structure. Thisstage is used to evaluate feasibility and risks associated with theproject, and describe appropriate management and technicalapproaches.

12Diagram : PlanningThe most critical section of the project plan is a listing of high-levelproduct requirements, also referred to as goals. All the softwareproduct requirements to be developed during the requirementsdefinition stage flow from one or more of these goals. The minimuminformation for each goal consists of a title and textual description,although additional information and references to external documentsmay be included.The outputs of the project planning stage are the configurationmanagement plan, the quality assurance plan, and the project plan andschedule.(2)Requirements Definition Stage :The requirements gathering process takes as its input the goalsidentified in the project plan. Each goal is refined into a set of one ormore requirements. These requirements define the major functions ofthe application, operational data areas and reference data areas. Eachof these definitions is termed a Requirement. Requirements areidentified by unique requirement identifiers and contain a requirementtitle and textual description.

Software Engineering13Diagram : Requirement – DefinitionThese requirements are fully described in the Requirements Documentand the Requirements Traceability Matrix (RTM). The requirementsdocument contains complete description of each requirement,including diagrams and references to external documents as necessary.Note : detailed listings of database tables and fields are not included inthe requirements document.The outputs of the requirements definition stage include :(3)i)the requirements documentii)the RTMiii)an updated project plan.Design Stage :The design stage takes as its initial input the requirements identified inthe approved requirements document. Design elements describe thedesired software features in detail, and generally include functionalhierarchy diagrams, screen layout diagrams, tables of business rules,business process diagrams, pseudo code, and a complete entityrelationship diagram with a full data dictionary. These designelements are intended to describe the software in sufficient detail sothat the skilled programmers may develop the software with minimaladditional input.

14Diagram : DesignThe outputs of the design stage :(4)i)the design documentii)an updated RTM,iii)updated project plan.Development Stage :Here for each design element, a set of one or more software artifactswill be produced. Software artifacts include but are not limited tomenus, data management forms, data reporting formats, andspecialized procedures and functions. Appropriate test cases will bedeveloped for each set of functionally related software artifacts, and anonline help system will be developed to guide users in theirinteractions with the software.

Software Engineering15Diagram : DevelopmentThe outputs of the development stage include:(5)i)A fully functional set of software that satisfies the requirementsand design elements previously documented.ii)An online help system that describes the operation of thesoftware.iii)An implementation map that identifies the primary code entrypoints for all major system functions.iv)A test plan that describes the test cases to be used to validate thecorrectness and completeness of the software.v)An updated RTM.vi)An updated project plan.Integration & Test Stage:During the integration and test stage, the software artifacts, onlinehelp, and test data are migrated from the development environment toa separate test environment. At this point, all test cases are run toverify the correctness and completeness of the software. Successfulexecution of the test module confirms a robust and complete migrationcapability. During this stage, reference data is finalized for productionuse and production users are identified and linked to their appropriateroles. The final reference data (or links to reference data source files)

16and production user lists are compiled into the Production InitiationPlan.Diagram: Integration & TestingThe outputs of the integration and test stage include:(6)i)An integrated set of software.ii)An online help system.iii)iv)An implementation map.A production initiation plan that describes reference data andproduction users.v)An acceptance plan which contains the final module of testcases.vi)An updated project plan.Installation & Acceptance Stage :During the installation and acceptance stage, the software artifacts,online help, and initial production data are loaded onto the production

Software Engineering17server, all test cases are run to verify the correctness and completenessof the software. After customer personnel have verified that the initialproduction data load is correct and the test suite has been executedwith satisfactory results, the customer formally accepts the delivery ofthe software.Diagram : Installation & AcceptanceThe primary outputs of the installation and acceptance stage include:Q.7i)ii)A production application.A completed acceptance test suite.iii)A memorandum of customer acceptance of the software.Define prototyping model.Ans.: The prototyping model begins with the requirements gathering. Thedeveloper and the customer meet and define the objectives for the software,identify the needs, etc. A ‗quick design‘ is then created. This design focuseson those aspects of the software that will be visible to the customer. It thenleads to the construction of a prototype. The prototype is then checked by the

18customer and any modifications or changes that are required are made to theprototype. Looping takes place in this process and better versions of theprototype are created. These are continuously shown to the user so that anynew changes can be updated in the prototype. This process continues till theuser is satisfied with the system. Once a user is satisfied, the prototype isconverted to the actual system with all considerations for quality andsecurity.The prototype is considered as the ‗first system‘. It is advantageous becauseboth the customers and the developers get a feel of the actual system. Butthere are certain problems with the prototyping model too.i)The prototype is usually created without taking into considerationoverall software quality.ii)When the customer sees a working model in the form of a prototype,and then is told that the actual software is not created, the customercan get irritated.iii)Since the prototype is to be created quickly, the developer will usewhatever choices he has at that particular time e.g. he may not know agood programming language, but later may learn. He then cannotchange the whole system for the new programming language). Thusthe prototype may be created with less-than-ideal choices.This model may be one of the following types :1. Throwaway model: discard the model once all requirements areunderstood.2. Evolving Model: Refine the model every time when the requirements areclear.Q.8 Define Spiral model?Ans. The spiral model, originally proposed by Boehm, is evolutionary softwareProcess model that couples the iterative nature of prototyping with thecontrolled and systematic aspects of the linear sequential model. It providesthe potential for rapid development of incremental versions of the software.Using the spiral model, software is developed in a series of incrementalreleases. During early iterations, the incremental release might be a papermodel or prototype. During later iterations, increasingly more completeversions of the engineered system are produced.A spiral model is divided into a number of framework activities, also calledtask Regions 6. Typically, there are between three and six task regions. Customer communication—tasksrequiredto establish effectivecommunication between developer and customer.

Software Engineering19 Planning—tasks required to define resources, timelines, and other projectrelated information. Risk analysis—tasks required to assess both technical and managementrisks. Engineering—tasks required to build one or more representations of theapplication. Construction and release—tasks required to construct, test, install, andprovide user support (e.g., documentation and training).Q 9. What is Forth Generation Techniques?Ans. The term fourth generation technique (4GT) encompasses a broad array ofsoftware tools that have one thin

7. Web-Based Software- Web-Based Software is the browsers by which web pages are processed i.e., HTML, Java, CGI, Perl, DHTML etc. 8. Engineering and Scientific Software-Design, engineering of scientific software‘s deal with processing requirements in their specific fields. They

Related Documents:

Concept Map Based Software Engineering (TR-2007-6, August 8, 2007) . Microsoft PowerPoint - Concept Map Based Software Engineering-hubbard.ppt

Materials Science and Engineering, Mechanical Engineering, Production Engineering, Chemical Engineering, Textile Engineering, Nuclear Engineering, Electrical Engineering, Civil Engineering, other related Engineering discipline Energy Resources Engineering (ERE) The students’ academic background should be: Mechanical Power Engineering, Energy .

2 2.Software Engineering Body of Knowledge The Software Engineering Body of Knowledge (SWEBOK) is an international standard ISO/IEC TR 19759:2005[1] specifying a guide to the generally accepted Software Engineering Body of Knowledge. The Guide to the Software Engineering Body of Knowledge (SWEBOK Guide) has

1) Software engineering is the application of a systematic, disciplined, quantifiable approach to the development, operation, and maintenance of software. 2) The study approaches as in (1) Software Engineering is a layered technology. Software Engineering encompasses a Process, Methods for managing and engineering software and tools.

tres tipos principales de software: software de sistemas, software de aplicación y software de programación. 1.2 Tipos de software El software se clasifica en tres tipos: Software de sistema. Software de aplicación. Software de programación.

GEOMETRY NOTES Lecture 1 Notes GEO001-01 GEO001-02 . 2 Lecture 2 Notes GEO002-01 GEO002-02 GEO002-03 GEO002-04 . 3 Lecture 3 Notes GEO003-01 GEO003-02 GEO003-03 GEO003-04 . 4 Lecture 4 Notes GEO004-01 GEO004-02 GEO004-03 GEO004-04 . 5 Lecture 4 Notes, Continued GEO004-05 . 6

Careers in Engineering Guide the brighter choice. Contents ABOUT LSBU 4–5 BUILDING SERVICES ENGINEERING 6–7 CHEMICAL AND PETROLEUM ENGINEERING 8–9 CIVIL ENGINEERING 10–11 ELECTRICAL AND ELECTRONIC ENGINEERING 12–13 MECHANICAL ENGINEERING 14–15 MECHATRONICS ENGINEERING 16–17 PRODUCT DESIGN ENGINEERING 18–19 An engineering degree is a big challenge to take on. There is no denying .

Keywords --- algae, o pen ponds, CNG, renewable, methane, anaerobic digestion. I. INTRODUCTION Algae are a diverse group of autotrophic organisms that are naturally growing and renewable. Algae are a good source of energy from which bio -fuel can be profitably extracted [1].Owing to the energy crisis and the fuel prices, we are in an urge to find an alternative fuel that is environmentally .