0% found this document useful (0 votes)
17 views54 pages

SE&SPM

Notes regarding SE&SPM theory

Uploaded by

saipriya.cs23
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)
17 views54 pages

SE&SPM

Notes regarding SE&SPM theory

Uploaded by

saipriya.cs23
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/ 54
OCHOCKCRAOeCHAHeHHeRITE 0 u NEERING A LAYERED TECHNOLOGY is the establishment and use of to Sptwware engineerin, = s in, order.to ebtain economi. reliab| ally software that Ficiently on rdai machi nd Tools cering is a layered technology any engineer software engineering) must rest on ano: to quality. ‘ocess, Methods, a: Software en, 2 approach izational commitment ted ye" Tools ea SoPWaRE ENs\WEECING) LAYERS a? The \ foundation for software enginecring is the process layer. Software engineer- ns process is the glue that holds the technology layers together and enables rational and timely development of computer software. Process detines a framework for a set of key process areas (KPAS) The key process areas form the basis for manage- ment control of software projects and establish the context applied, work products which technical meth- ods are dels, documents, data, reports, forms, ete.) are Produced, milestones are established, quality is ensured, and change is properly man- aged Software engineering methods provide the technical how-to's for building soft- ware. Methods encompass a broad array of tasks that include requirements analysis, design, program construction, testing, and support. Software engineering methods rely on a set of basic principles that govern each area of the technology and include modeling activities and other descriptive techniques. Software engineering ‘ols provi je automated or semi-automated support for the process and the methods. When tools are integrated so that information created by one tool can be used by another, a system for the wo SUPPOF of software computer-anded Software ENEINCEHINE Ws i development, called established. CASE combines software, hardware, and a software ¢! database (a repository containing important information about design, program construction, and testing) to create a software engineering environment analogous 10 CAD/CAE (computer-aided design/engincering) for hardware. A Generic View of S. 7 View of Software Engineering i Engineering is the analysis, design, construction, verification. and management of technical (or social) entities. Regardless of the entity to be engineered, the following questions must be asked and answere + Whatis the problem to be solved? What characteristics of the entity are used to solve the problem? How will the entity (and the solution) be realized? How will the entity be constructed? | Each phase addresses one or more of the questions noted previously The definition phase focuses on what That is, during definition, the software engi- neer attempts to identify what information is to be processed. what function and per. formance are desired, what system behavior can. be expected, what interfaces are to be established, what design constraints exist, and what validation criteria are required to define a successful system. The development phase focuses on how. That is, during development a software engineer attempts to define how data are to be structured, how function is to be imple. mented within a software architecture, how procedural details are to be implemented, how interfaces are to be characterized, how the design will be. translated into a pro- gramming language (or nonprocedural language), and how testing will be performed. - ‘The Support phase focuses on change associated with error correction, ed as th adaptations req) Software's environment evolves, and changes due to enhancements brought about by changing customer requirements. The support phase reapplies the steps of the definition and development phases but does so in the context of existing software. Four types of change are encountered during the support phase: “_€orrection. Even with the best quality assurance activities, i is likely that LAE the customer will uncover defects in the software. Corrective maintenance changes the software to correct defects. Adapta in. Over time, the ori nal environment (e.g., CPU, operating stem. business rules, external product characteristics) for which the _— $$" Gas i ve maintenan « (suns software was develdped is likely! tee Adaptive in moditic accommodate changes to its external TON © the software t environment iwware is used, the customer/user will 1 will provide benefit. Perfective Enhancement. Ass recounize addi tional functions th mainienance extends the software beyond its original functional requirements, Prevention. Computer software deteriorates due to change, and because ~L STTRIs. preventive maintenance. often called software reengineering, must be con- ducted to enable the software to serve the needs of its end users. The Phases and related steps described in our generic view of software engineer- ing are complemented.by a number of umbrella activities activities in this category include: 2_Software project tracking and control “Formal technical reviews Software quality assurance Software configuration management Document preparation and production Reusability management > Measurement Risk management ee een THE Sor proces. / WA conman process framework is established by defining a small number YY) of tramewbrk activities that are gpplicable to all sofware projects regardicss of their size or compldxity. A number of sash sors. cach a collection of sofware enginecring work tasks, project milestones, work Products, and quality assurance be adapted to points —enable the framework activities to the characteristics of the software project and the requirements of the project team. the following manner: ad hoc and Five process maturity levels that are define: The software process is characterized as Level 1 fined, and success ©cca- sionally even chaotic. Few processes are def depends on indi- vidual effort. Level 2: Repeatable. Basic project’ management and functionality. The processes are established to track cost, schedule. necessary line is in place to repeat carlier successes on projects with Process dis. similar applications. Level 3: Defined. The software process for both management and engi- neering activities is documented, standardized, and zationwide software process. All projects use tegrated into an orga: a documented and approved version of the organization's process for developing and supporting software. This level includes all characteristics defined for level 2. Level 4: Managed. Detailed measures of the software process and process and products are This Product quality are collected. Both the softwai ely understood and controlled using detailed measures. quantita level includes all char- acteristics defined for level 3. Level 5: Optimizing. “Continuous process improvement is enabled by 1m testing innovative ideas quan- titative feedback from the process and f and tech- nologies. The SEI has associated key process areas (KPAs) with each of the matu Hach KPA is described by identifying the following characteristics: Goals—the overall objectives that the KPA must achieve. Commitments—requicements (imposed on the organization) that must be St io achieve the goals or provide proof of intent to comply with the woalsy : Abit nose things that must be in place (organizationally and technically) to enable the organization to meet the comminnents, 1 Activities—the specific tasks required to achieve the KPA function. * Methods for monitoring implementation—the manner in which the activities are monitored as they are put into place. ~ Methods for verifying imptementation—the manner in which proper practice for the KPA can be verified Process maturity level 2 + Software configuration management Borne ~ Software quality assurance * Software subcontract spanagement ~_ Software project tracking and oversight Cou 07 4. * Software project planning + Requirements management Process giaturity level 3 + Pee Tees) yy. eoribwren 4 + IntergrSup coordination + Software product engineering + TheeerREdSIAware management + Training program + Organization process definition + Organization process focus Process maturity level 4 + Software guality management Sion + Quantitative process management Process maturity level 5 + Process change management Teehnology chan: Defect prevention F software eng! A process model f Pp. Of the project and application, the methods and tools to be used, and the! con- trols and deliverables that are req PN Aline Tein t= Be ipedpreny ve & f Proviem | Jdayinition | ntered: statu quo. problem def tegration. Status quo“ (RAC95}; problem definition identi represents the jes the specif evelopment solves the problem through the appt cay, affairs” to be solved; technical of some technol. ation documents, progra, and solution integration delivers the results (eu, ms, data, new business function, new roduct) to those who requested the solution in the fj I r ran ARE OP ws: rst place. 4, © en Poets Bet shen THE PROTOTYPING Mo wed ts reeks std eplaw Pe Sele or US btu pudtah, ait "| The prototyp; we =, Y wont Devel- oper and oe peg PSS bedine with requirements gathering. customer meet an: le! we jective he EERO SPe, Sl custorer Sree d aeaet ae eh rate asthe > > [ ) if i levelopme, a ) current state of afferent” and solution Ratever requirements are known, and outline areas here Curther definig requires Z : = a ther definition is mandatory. A "quick design" then occurs. the quick be visible te ake nsePresenta- tion of those aspects of the software they wit e visible to the customennr input approaches and output formats). The quick design lead. ee eae e i evaluated by the « S to the construction of a prototype. The prototype ustomeruscr and used to ili Weuirements, for the software to be developed. Iteration oecine as the prototype is tuned to satisty Tes aeeas of the customer, while at the same time enabling the developer to better understand what needs tobe done sat teen et pF Butlalrevise 7 mockup Prototyping can also be problematic for the following reasons: 1. The customer sees what appears to be a working version of “yaa fe unaware that the prototype is held together “with chewing gunl'Setthat ng wire,” unaware that in the rush to gat kt working no one ner eee over- all software quality or long-term maintainability. When formed that the product must be rebuilt so that high levels of saectien ca ee maintained, the customer eries foul and demands that "a few ieee te applied to make the prototype a working predect. Too often, 3 development management relents. yaee? software € « ——— > j = f a ation com ises in order to get 2. The developer often makes implemen’ prom " der fo ee | , inappropriate operating 5: or & prototype working quickly. A" pProp! Ps em oe Program- ming language may be used simply because it is aval known: an in yithm may be implemented simply to r demonstrate capability. After a time, the developer may become familiar w all the reasons why they were h these choices and for- get y were i i a ice has now become an integral inappropriate. The less-than-ideal choice Part of the system. Waa slew req HOT client analy g | Dro Tan awe ented rhe ep ymaunl aon , Sasiern REQUIREMENTS EN EERING (oon pals ve dtr & San TB kebe hs on Requirements engineering provides the appropriate mechanism “To ' understand- ing what the customer wants, analyzing need, assessing feasibility, | \~) Negotiating a rea- sonable solution, specifying the solution unambiguously, ' Validating the specification, and managing the requirements as they are transformed into an operational system [THA97]. The requirements engineering process can be described in five distinct steps [SOM97]: Fan, Sat > Ran, ov) 3 BASLAu Siem > Faq pee en ent dye abou dori ches’ equirements elicitation_ yu oer denn 7 RES ~ Asmain % sajudternnty Vaio ~ Requirements analysis and negotiation | iS curs, bane rements specification manna, excuriny sh) of sem bynes § n modeling Otter sake Wsthes +b fry ank ements validation_»\\ refers a difereny Sed ey tale 4K) err veee Tak SI anagement War wear WAY G racers Io Cas\emen 7eqaminnt 1 >Veupatir > UN aejes Hu sed ebb Teal oven ted J imple enough—ask the customer, the users, and! he objectives for the system or product are, what to beep |. how the sys- tem or product fits into the needs of the business,» { isn’t simple+—it’s very hard. or i RES Problems df scope. The boundary of the system is ill-defined or the cgdtix~ custome}s/users specify unnecessary technical detail that may confuse, of oa rather ae clarify, overall system objectives WGA Problems of understanding. The customers/users are not completely sure of we what is needed, have a poor understanding of the capabilities and imitations of their computing environment, don"t have a fill | 1. Anuamnriiy, Lorton — pp WN we woh Geatying, de . + relowy Dov tony g ; oscar gwiatag Ie meena 1S FS Gleam! On bolal the prob tem domain, have trouble communicating ved to be SPscitY requirements that con- flict with the needs of other customers/users, or ¢ heer, omit information that is_be : Pecity 1equirements that are ambiguous or untestanre Problems of volatility. The requir Gu ‘ments change over time. idelines for requ ‘ements elicitations are Assess the business and nd te + Identify the people who their organizational bine © eee technical enviranment (og, computing architecture, produc: ci etem: telecommunications needs) into which the syster ee Product will be placed * Identify “domain constraints” Gc., characteristics of the business Tuncionaiment, Specific to the application. domain). that the Datlonality or ‘purfor- mance of the system er product vo be buile, Peet ONe OF More requirements elicitation methods Cee. interviews, focus groups, team meetinus), * Rolicit participation from many people so that requirements are defined from different points of view; be sure to identify the rationale for wae requirement that is recorded. Identify ambiguous req. Create usage scenarios ‘chnical feasibility for the proposed system. will help specify requirements and understand uirements as candidates for prototyping. Noa aA a, Teme A. Requirements Analysis and Negdtiation Sean, Gane PONSA STA A Once requirements ha en gathered, the work products noted yaw”, earlier form the basis for requirements analy. Analysis categorizes 0 requirements and organizes them into related subsete: explores cach ne teawivesvent in relationship to others: examines requirements for Consistency, ae omissions, and ambiguity and ranks requirements based om the needs ato customers/users. ow As the requirements analysis activity commences, the following questions are asked and answered: + Is each requirement consistent with the overall objective for the system/product? Have all requirements been spe: ied at the proper level of abstraction? That is, do some requirements provide a level of technical detail that is inappropriate at thi tage ry or does it represent an add-on Is the requirement really necess® Feature that may not be essential to the ‘objective of the system? mbiguous? Is each requirement bounded and unat pave attribution? That is, is ted for each requirement? a source Does each requirement (generally, a specific individual) n° Do any requirements conflict with other requirements? Requirements Specification The System Specification is © system and requirements engineer. he final work product produced by the It serves as the foundation for hardware database engineering, and human engineering, soft- ware engineering: '¢ of a computer-based engineering. It describes the function and performane system and the constraints that will govern Its developme® bounds each allocated system element. The System Specification also describes the information (data and control) that is input & t, The specification 0 and output from the system. System Modeling . ane tec a moment that you “have been asked to specify all vtruetion of a gourmet kitchen. You know the tion of doors and windows, and the nets and appliances and even requirements for the con: dimensions of the room, the loca- available wall space. You could specify all cabi- dicate where they are to reside in the kitchen. Would this be useful specification? ‘The answer is obvious. In order to fully specify what is to be built, you would need a meaningful model of the kitchen, that is, a blueprint or three- that shows the position of the cabinets and dimensional render- ing appliances and their relationship to one another. From the model, it would be relatively easy to assess the efficiency of work flow (a requirement for all kitchens), the aesthetic “look” of the room (@ per- sonal, but very important requirement). Requirements Validation Requirements validation examines the specification to ensure that all system requirements have been stated unambiguously; that inconsistencies, omissions, and errors have been detected and corrected; and that the work > > > > > > > > > =| products conform to the P fo the standards established for the process, the proje the product. pest The following questions present a small subset of those that might be asked ANS foduirements stated clearly? Can they be 1 terpreted? irement nie ( 22,8 Person, a regulation, a document) of the requirement identified? Hae the inal statement of the req: oF against the original source? ment bounded in quantitative terms? twrement violate any domain constraints? Janncnt testable? If so, can we specify tests (sometimes called valt- dation criteria) to exercise the tequivee ec? Is the req MMirement traceable to any system model that has been created? Is the requirement Requirements Managemen Requirements man to identify, control, any time as the proj. examined by ement been Is the require: Is the requi traceable to overall system/product objectives? a agement is a set of activi and tack requirements and ject proceeds. Among many possible traceability tables are the following: Features traceability table. cus- jes that help the project team changes to requirements at Shows how requirements relate to important tomer observable system/product features. Source traceability table. Identifies the source of each Dependency traceability table. one another. requirement. Indicates how requirements ure related to Subsystem traceability table subsystem(s)that they govern. Interface traceability table. Shows how and external system interfaces. Categorizes requirements by the requirements relate to both internal Bie oaper opus. sppjower UG ewwirermant Req irene ee LT = = = f ial — ele l= = Qewmit Worabity =] le Vote. vy 2 emer coum EE NES preven . antes (CS 72. oe eestay Aang Sealy - GV 22 Amat Porstyye Aetvid mephehs \ ave Fraud Oy euprme aes & 5c} C. bore Nene & ep jor re tated Vaal i ye “ SOFTWaRE Tory eInP Pe A vor jo can oh Shem owe ach Meu shes mL ae ony Ms \ , et: Selecting the Protonping Approdel! CP" Pro PC wk: The prototyping paradigm can be iia siose enged: 6 pen: ‘ended. The close-ended approach is often called Parowelway protonpine: Using this approach, a prototype serves soléty_as a rough demonstration of DrheeEGYeaRsHE [Lp then scarded, and she sowangpss engineered sine a wee Te een scare, approach, called Qu luionary pratoning awe ESSE the prototype as the first part of an analysis activity that will be continued pope inte design and construction. The prototype of the software is the first \ evolution of the finished system. MUX Before a close-ended or open-ended approach can be chosen, it is necessary SoS ote determine whether the system to be built is amenable to prototy pint S . DOR’ Dakrotuping Methods and Tools yo ‘For software prototyping to be effective, a prototype must be ANS ger eveloped rapidly so that the customer may assess results and A ‘commend changes. To conduct rapid pro- totyping. three generic row * classes of methods and tools (e--. [AND92], [TANS9)) are available: Rs SUAe SOF Fourth generation éechniques. Fourth generation techniques (GT) OE Seiathcompace a broad array of database query and reporting languages, >} oF pro- gram and application generators, so other very high-level oso rener >) ocedural languages. Because 4GT enable the software engineer to generate exe- cutable code quickly, they are ideal for rapid prototypin: pee Rewsabte ‘software components. Another approach to rapid GP protou/ping is to assemble, rather than build, the prototype by using. set * Gf existing soft ware components, Melding prototyping and prouram eS Gs Component reuse will work only if a library system is developed so thay SP So components that do exist can be cataloged and then retrieved. It should per we be noted that an existing soft- ware product can be used as a prototype os for a "new, improved" competitive product. In a way, this is a form of reusability for software prototyping Format specification and prototyping environments. Over the past tivo decades, a number of formal specification languages and tools have boon developed as a replacement for natural language specification techniques. Today, developers of these formal languages are in the prowess of developing interactive environments that (1) enable an analyst pro eractively create language-based specifications of a system or 1° puvure, (2) invoke automated tools that translate the language-based weg ol ple the customer to use ments. ble code to refine forma op ary objectives: (1) to wor podescribe what the customer requires, (2) to establish a basis for the PC NC ySteation of a software design, and @) to define a set of requirements that aoe ee be validated once the software is built. To accomplish these 2 objectives, the anal: i i oe nalysis model derived during structured analysis takes. inl. Ge Se uate sy oe pee oe we the form illustrated in Figure. ams Lg [At the core of the model lies the data_dictionary—a repository wad) 8 contains descrip- tions of all data objects consumed or produced by the © sofiware.JThree different dia- grams surround the the core. The entity a elation diagram.(LD) depicts selationships between data objects the 5 we Sy ERD is the notation that is used to ook a Ac sv\Onduct the gta modeling activity. The BBaibutes of each data object oy. \ au Oe Fon feed in the BRD can be described using a data dbject description. pape a AR The dara flow dlagramiDED) serves two purposes: (1) to provide an” Y°) n of how data arc zfansformed us they mdyc through the system avo < tions (and subfunctiong) that transform the» ~~} covides additional information that is used during dal information domain and serves as a basis for the 7hy*-“ étion. A description of each function presented in the DFD aww S| ‘a process specification PSPEC). ; ay, transition diagram (STD) indicates how the system ts. To accomplish this, the STD led states) of the system and state to state. The STD jonal information about © control specjficatior Paes oe beg da Wr, sehen of ai Pe “ua FO Umae preens e IP Aeembaey Vb Stel own Lee Lap ole Sper We Bn puh Se ¢ & ted te bsh SS \ 2 \e won aon i Ovjals Ayn Rlatiow dips “ ye Ae Rdarers. at i Age } ») DATA MODELING Data model relevant to any data pro- cessing application. What are the pi objects to be processed by the sys- tem? What is the composition of each data object and what attributes describe the object? Where do the the objects currently reside? What are the relationships between each object and other objects? What are the relationships between the objects and the processes that transform them? of specific questions that are mary data sen Dasa Onjects, avributes, and Relationships WW) ¢ data model consists of three interrelated pieces of information: the oY velut “dati Object, the attributes that describe the data object, and the relationships 4 a" that connect data objects to one another. Data objects. A dara object is a representation of almost any composite informa- tion that must be understood by software. By composite information. we mean some- thing that has a number of different properties or attributes. Therefore, width (a single value) would not be a valid data object. but dimensions (incorporating height, width, and depth) could be defined as an object. Data objects (represented in bold) are related to one another. For example, per- son can own car, where the relationship oiv7 connotes a specific “connection” between person and car. The relationships are always defined by the context of the problem that is being analyzed Attributes. Auributes define the properties of a data object and take on one of three different characteristics. They can be used to (1) name an instance of the data object, (2) describe the instance, or (3) make reference to another instance in another able. '" addition, one or more of the attributes must be de! identifier—that is, ‘he identifier attribute becomes a "key" when we want to fer(s) ‘quirement. Referring to the data object ear, might be the ID number find an instance of the data object. In some cases, value: are unique, although this is not a re a reasonable identifier Relationships. p, Consider two dat: for the identi ‘Sta objects are connected to one another in ifferent ways. These objects can be the We can define a set of object/relationship pairs that ‘ionships. For example, software to be built. define the relevant relat, A bookstore orders books. A bookstore displays books. A bookstore stocks books. A bookstore sells books. A bookstore returns books. | Books Gane Commertion bly Ordon Disvlowy, > Bovk Bovkstoy Gd. Rpiatiow Wve viw okjyeus lat Horie ti > eee ~ uJ 2. Cardinality and Modthtis Cera The~ data model must be capable of representing, the number of ocur- rences objects in a given relationship. ¥ m bhal Fg WE rane per of be Nato ves For example. a husband can have only one wife (in most cul- tures), a parent can hase many children. Taking into consideration al combinations of one! and ‘many,’ two [objects] ean be related as © One-to-one (:)—An occurrence of [object] ‘A’ can relate to one and ‘only one occur- rence of [obicet] B.) and an occurrence of 'B’ can relate to only one occurrence of ‘A- ‘One-to-many (I:N)—One occurrence of [object] ‘A’ can relate to one or many occur-rences of fobject] 'B,’ but an occurrence of 'B’ can relate to only one occurrence of ‘A.’ For example, a mother can have many children, but a child can have only one mother. Many-to-many (M:N)—An_ occurrence of [object] ‘A’ can relate to one or more occur- rences of 'B,’ while an occurrence of 'B’ can relate to fone or more occurrences of 'A.” IT) we Ate Leo = Modality. The modality of a relationship is 0 if there is no explicit need wh of vos eommutalgr, the rela- tionship to occur or the relationship is optional. The Lea awues Modality is 1 ifan occurrence of the relat nship is mandatory. i ‘To illustrate, consider software that is used by a local telephone en company to process requests for field ser that there is a problem. simple, a single repair a: complex, ce. A customer indicates If the problem is diagnosed as relatively n occurs. However, if the problem is multiple repair actions may be required. Figure 12.5 lustrates the relationship, cardinality, and modality between the data objects customer and repair action. ia fers] [ream Ess me SS a md io Paka objet -bype Wrevarclurs es 3. Entity/Relationsh tionship pj The object/relmine eras ship. pair is the cornerstone of the data model. These mtity/relationship diagram. The pairs can be represented gr, for the design of ERD was. original ‘aphically using the ; \ational dee Proposed by Peter Chen [CHE77) 8 ystems and has been extended by others. A set of primary com- ponents are identi le ntified for the ERD: data objects, attributes, relationships, ERD is to represent and vari- ous type indi, indicators. The primary purpose of the data objects and their relationsh nships. Sey cis ; Vtionat WADeeL =e gonguire Val Sg ere Ww dorcel modeksh 7 ws Sue cod Mave ees af poo pra a ae Mee See | lowe dow i Yet es Moa — Juprrne be eee ve z “LING AND INFORMATION FLOW Stpvern Ne = UNSTION AL MODES ae i flows through a computerbeccl ” Oo Sy Stem. The spottin aecupts input in @ variety of forms; applies hardware, " re, and human eleme! eo ceariety oF forms. Input may be a control CMe pepe © mye a Trjomaliow Plow model signal transmitted by a transducer, a series of numbers typed by a human operator, a packet of information transmitted on a network link, or a voluminous data file retrieved from secondary storage. 41.Data Flow Diagrams As information moves through software. it is modified by a series of transformations. A dar flow diagram is a graphical representation that depicts information flow and the transforms that are applied as data move from input fo output. The basic form of a data flow diagram, also known as a data flow graph ot a bubble chart, The data flow diagram may be used to represent a system br software at any level of abstraction. In fact. DFDs may be partitioned into levels that represent increasing information flow and functional detail, rogvan sont + AW pales ion 1O = Prous — Pergo sorte sun yaaa HDR Somes of sk = Sous oh systern Tho ov oval eh Sytew ele eeoeeeears) iiip 4, tan Ts aie Yo Data stere ima ach Ol ty yo Souwus oy sin by jo Lonund Pours to ¢ we Aiarstoahon eb ate date ts quid olpdals __ = — | | Extensions for Hy — ‘sions for Reat-Tiing NY Sort sas much or 4 Lane Selowvare applications are time dependent and process as mucl (| MEFE CoN- Wol-oviented information ay data. A realtime system must intertet { with the real world in a time frame dictated by the real world. Aireralt o avionics, manufactur nt iets, and industrial uument. turing process control, consumer products, and ry instr ation are but a few of hundreds of real-time software applications. ‘ Te accommodate the analysis of real-time sofware, a number of extensions to the basic notation for structured analysis have been defined. | (these extensions, devel. oped by, Ward and Mellor [WAR85] and Hatley and Pirbhai (HAT87] and illustrated in the sections that follow, enable the analyst to represent control flow and control pro- cessing as well as data flow and processing. Wig Trtomaliow jlow -vefimement 3.Ward and Mellor Extensions Ward and Mellor [WAR85] extend basic structured analysis notation to ale accommodate the following demands imposed by a real-time system) + Information flow is gathered or produced on a time-continuous basis. + Contra! information ii-passed throughoul the system and associated control processing, \ & arlene poarreeenlaon oda somehenty ete J Malt pie youn Hy Senme Wort gyneati one pa rracllt Loa eng one we) shalr & & Mwerlinwennn One Vr eway ion Ws sla L bynes Kore | | « Suchet P soph Aeron @ o Mecho b> fnew WICK neg to Sowa Deetey ane eps We Picgricin i. ey ‘a wl \wp\Conestedion . sa Ts ee af at Pym EIN a AN datag ove ccd He qmadanlar OAC eased Fa, Apefolon nde ed State $1 Yrmuainy Al ayes) HY = uw on Dewey Aare we ae gsigh sits at the technical kernel of softw: applied regardless of the software process model that i software in ri software design is the fj generation. used. Beginnil ‘ require- ments have been analyzed and specified, Fst of three techn peede . an nd test—that are required to build and verify the software. To develop a complete These models are listed cal activities—desi Peeifcation of design (design model), four design models are needed. low. hiv! Awol? \d Ye toh ORY Fo eec tuts = sla diye Sem" o wanenesen sell CR Me Sheth, tocspouenly Wee Aa! = ghudae« HEWN gacuimuas eV eaay — _ . ©. Monidhorinatailaly Troma\. omalss wodek wb a sl dwign — danijne Data design: his spectNes the data structures for implementing the software by converting data \ve so 4 ‘objects and their relationships identified during the analysis phase. Various studies suggest that so yma design engineering should begin with data design, since this design lays the foundation forall Cann toe_| other design models. Architectural design: This specities the relationship between the structural elements of the software, design patterns. architectural styles, and the factors affecting the ways in which architecture Gan be implemented. Component-level design: This provides the detailed description of how structural elements of software will actually be implemented. Interface design: This depicts how the sofware communicates with the system that interoperates with it and with the end-users. senate lets “Usauplen, Medtules § effi “Rrige aahints, elude See aanalaps madal to Connpovnat Wawel ie 2 Totiedhive A hls 4 AO Componenl ge Wa Septem An Qulige — 2 4 eo Ful amon ve tre . yu pouss Mb Achy suns User Perpeene darnved hs cp pore chanartow his . oC hewyrern Wed Yep ie EE DESIGN PROCESS NS pees hewn ME leg © ‘ cites tdoat unrouh whieh requirements ave te He es Initially, the blueprint depiets a Holis- tic view of slated into \ Sottware design is blueprint” for construct software 1. Desig and Software Quatity wate, Oo the quality of the evolving design is assess Wy process, eviews or de! sof formal technical t jan walkthroughs: fonmal cs lanrougt Guide for the eval- uation of a good dest! Vhroughout the desi: tha se Saud vere © The design must implementall of the explicit requirements contained in the analysis model, and it must accommodate all of the Implicit requirements des' custome! dl by the © The design must be readable, understandable gyide for those who generate code and for those who test and {akiently support the sofware. + The desi addressing the data. functional, and behavioral d ive. Vis OO. Go tor ve goals: n should provide a complete picture of, the sofuvare, r P sof fins from an implementation persp How to ach 1. A design should exhibit an arghitectural structure that (1) Has been CSO Bie oon created using Seomnizable design patterns, (2) is composed of components that exhibit good design characteristics (these are, discussed later in this chagteD, and ) AN jon mechanisms in software design, namely, control abstraction. All these the de: a syaetSiBh process by proceeding from the jechanisms allow us to wbstract design model to Model in Ty Pete ag _ : 7 baer dareay Goa Ral njewnaien Fe ce runny net | the detonel i i Rodel 10 vt ala cYsematic manner ror cae vet volede | FunGtional abstradion Birr eo Racca oe we’ eh Uae uss on Gua pert HPsiraction can be generatiges’,,"VOIveS the use of parameAAa” subprograms. Fuhctional wesd im groups there exist routines ypny ollections of subprograms referred to as ‘groups’. Within these gue 4 ) \. the containi: h may be visible or hidden. Visible routines can be used within aves LA \ other groups and earns pr tere *s within other groups, whereas hidden routines are hidden from ithin we ve on \e Containing group only, Paid Teprermia tion all ne Nba absracion: This wey, POMEL BES Rn te a Sere data object window ay, Geseribe the ned ‘ifying data that describes a data object. For example, the ASSES a set of attributes (window type, window dimension) that —! tr, tide nbandion acing, pesca i 5 tails are igs slots ore te Pit, Reucewnes ORIN sepapalety deen aan verano Ceol. For example, iran op eeste eet Sita Sting The cate mechan afb a ” im and while statements programming languages (like C and C++) are seontectoral aeenachine cod Era; wins vas domdiactal Wiarbcioa a ove sebhesturnl Sssizn level, this abstraction mechanism permite specifications of sequential subprogrm and exception handlers without the concern for exact details of implementation, g-Architecture le implementations, rete ar architecture refers to the structure of the systeps. which is composed of various components of ® program/ system, the attribules (properties) of those comsponsnts ‘and "the relationship amongst them. The software architecture enables the software engineers tv analyze the sofware design efficiently. In addition, it also lielps them in decision-making, and handles ture does the following. Provides an insight to all the with each other risks. The software architect interested stakeholders that enable them to communicate Highlights early design decisions, which have gfeat npact on the software engineering activities (Like coding and testing) that follow the design phase Creates intellectual models of how the system is organized into components and how these components interact with each other. Rien ae) a vontent 3 Batterns 14 Selves @ artieales Aaayn Prtdenn aw © Spetibed A pattern provides a description of the solution to a recurring design problem of some specific domain in such a way that the solution can be used again and again. The objective of Sach pavTeM is to provide an insight to a designer who can determine the following, “Types: cused Whether the pattern can be Few" cable to the eu" jevelop rent project a similar but functionally Whether the pattern is appli oF structurally de Whether the pattern can be used 1° different design pate Types of Design Patterns ware desi, stor during the entire soft lesizn process i fesigner can examine the problem description ‘complies with one or more of the jesign Pa loped, tl tr etpe whether Software engineer can use the d When the analysis model is deve at different levels of abstraction to dete Areiticen are high-level strategies that refer to ihe overall structure that architectural patterns are often considered equivalent t0 SST SS" ‘egies that are used to solve _design Design patterns: These patterns are medium-level strategic: sed ; problems, They provide a’ means for the refinement of the elements (as defined by architectural THe af « sales tyanen on dhe relationship among them. Specific design elements such ap relationship among components or mechanisms that affect component-to-component interaction are addressed by design patterns. Note that design patts alent so \ software components. Idioms: These patterns are low-level patterns, which are programming-language specific. They describe the implementation of a software component, the method used for interaction among software components, etc., in a specific programming language. Note that idioms are often termed as coding patterns. Tare name § Addy essable ed dlw 4 Sepenntdly diyites. a SW that Permits & br4 Modularity Ty ty a single atte oh 4 eas ty Modularity is achieved by dividing the software into uniquely-named and Yddressable components, which are also known as modules. A complex system (large program) is partitioned into a set of discrete modules in such a way that each module can be developed independent of other modules, After developing the modules, they are integrated together to meet the software requirements. Note that larger the number of modules a system is divided into, greater will be the effort required to integrate the modules. Modularizing a desizn helps to plan the development in a more effective manner, accommodate changes easily. conduct testing and debugging effectively and efficiently, and conduct maintenance work without adversely affecting the functioning of the software. ___yoh 1. Modutow deromposabi Why 2. Moduloy Cowposability a taoduslaw ude sanndabity, A. Modula’ continuity ~ 5. Mocluloy prolactrov Comupowenrl, bh » Refactoring H deywin © syphemalic Prous oh Woy onianyy Computer Lads al wirmater jato © module oy ol orm wile are + alala so Ito} ° TAL Sheaye — laqoud Jovolala 3 ete a Chong ue pyhontel > eral led and designed in suc are not accessible 10 other modules. They pass only that 1 fo in| “hich is required to a ‘complish the sofware functions. The r 'S referred to as information hidi FEE defines information hiding. 5 ‘lating software design decisions in modules in such a way that the 8K box’ to the oft’ 88 Possible about the module's inner workings; thus each Ne other Modules in the system. Information hy is ori and maintenance phase Sant i below. ne de ion to hiding ur as ‘the techniqu module's inte 1 way that the data structures He OF en aps mense use when modifi ME Of the advantages asso. ‘sation through controlled interfaces arene ty orden etal Restricts the effects of chang 5 in one component on others n Niher quality sofware, btu We | .: Fie . provwp, w Stepwise Refinement T)¥-4 2 dea juat s\w oe ery eT eae e Stepwise refi Of cn enstion « Toratewaa ON Frehiveciy es ‘ise refinement is top~ les egy used for ing u system from a 4*+4 hh level of abstraction imag (eden design strategy used 1 deSompading uaystem fom a i tractio ‘ore detailed level (lower level) of abstraction. At the highest obs Wad information ee _inetion or information se aeons seeRURaECN. providing any oan he stepwise refinement process by creating a sequence of is more detailed than the previous lier Compositions represent the '¢ later compositions show in detail how these interactions are achieved enon Onewgiing ents Ee ee Wns Jumufeality o4 & 5 low. which ext cohesion (like a compancnt performs four functions that hav. a inuted relationship wirt one __f Snore). Software dese may ecide to rotator the conyponent ino four denen Sermonent cae canny, gh cohesion hs fs 0 cnr meaton, esting al ” pn tea casrion nino Inte Snel shy © Xv dans v 8) Structural Partitioning 7 ture, the structure of the When the architectural style of a design follows a hierarchica ture ofthe Program ean be partitioned either horizontally or vertically. In horizaniaL partitioning, the contro! modules are used to communicate between functions and execute the funetions. Structural Partitioning provides the following benefits ‘The testing and maintenance of software becomes easier. Bneoe The negative impacts spread slowly. ‘The software can be extended ca In vertical partitioning. the functionality is distributed among the modules-in a top-down manner, The modules at the top level called control modules perform the decisjon-making and do little processing whereas the modules at the low level called worker modules perform all inp compu and cup es Aanmag at en ompeter g 1 Concurrency (o\\etine of) ee ee Newent Nel Arman Vremaro uly ver Seve Computer has limed fesourees and they must be wilized ficiently as gUAGDHRABOH ble. To utilize these resources efficiently, multiple tasks must be executed This requirement makes concurrency one of the major concepts of software design. Every system must be designed to allow multiple processes to execute concurrently, whenever possible. For example, if the current process is waiting for some event to occur, the system must execute some ther process in the mean time. >= 295 AN Gaerr== ad Poe based on some characteristics. As we Know, modules are set of instructions put together in order 15 '0) Cohesion gery wo wodutes The preter the cohesion the beter iste program dest ements | pala «Art Cah eonrel ita) L ont Eee mg Konan” Oy By — age 930% re OG EES There are se he £0 1yPe8 of coh, , ot e 2 Co-incidentat conesig, ete eae It of breaking the program ing ind randSNseohesion, which might be the result o Tor the sagé*8Fmodularization. Because it is rammers and is generally not-accepted. 69 WtAiruy onicar Regen Logical Colin Givens : called logical cohesi logically caregorized elements are put together into a module, E \ermanal nesioniy Bot MBit PIMA T ph ol ‘emporal Cohesion - ery Sng Wwwewed “sini porn nae aU crc Ne ae NPA 2 aces aa + iis called temporal cohesion, Procedural cohesion - Sequentially in order to pete” Clements of module are grouped together, which are executed DeeetOUnAITSIN is called procedural echesion Cohesion ~ When Hy and work tis Communicationat executed. sequential elements of module are grouped together, which are cohesion, ‘on same data (information), it is called communicational Sequential cohesion - Wh, nother wen,Clements of module are grouped because the output of one element serves as input to another and so ny no grouped because PI 30 On, it is called sequential cohesion: are wld fore oY Wx 40 togetvey beraue Mwy me TY rate moduc mnaidered 16 be the Niighest Aegree of cohesion, and iis highiyS ALON, single well-defined func i unetional cohesion are grouped because they all contsibute tox Floge fined Function. It can also be reused, ERIE A coupling i Den cesure that defines the level of inter-dependability-among modules of a Counting, the Benet BE level the modules interfere andl intstacr wih oaeH SNe Te Tote ae coupling, the better the program, ‘There are five levels of coupling, namely - rern. o\ “Functional cohesion Content coupling ~ When a module ean rectly access or modify or refer to the content of another module, it iS called content level coupling. nesree coppting- When multiple modules have read and write access to some global data, itis called common or global coupling. oe Wed eel Ave flow ARONA Control coupling- Two modulds are caliéd control-coupled if one of them decides the function of the other module or changes its flow of execution. Stamp coupling- When multiple modules share common data structure and work on different part of it. it is called stamp coupling, sid Coupling: Data coupling is when two modules interact with each other by means of passing Gata (as parameter). If a module passes data structure as parameter, then the receiving redlule = 5 e 8 3 E a : 3 i ——— The architecture of a system describes its Major components. thy (structures), and how they int several contributory factors st design, and IT environment. sani act with cach other. Sofware architecture and design jn rey) a Software Architecture Types Nigar Soaay Tels, We can segregate Software Architecture and Desig into two distinct phases: - Architecture and Software Design. In Architecture, nonfunctional decisions are cast ang separated by the functional requirements. In Design, functional requirenients are accomplished Bron pen Software Architecture Architecture serves as a blueprint for a system. It provides an abstraction to manage the system complexity and establish a communication and coordination mechanism among components. EA Los BOI It defines a structured solution to meet all the technical and operational requirements, while optimizing the common quality attributes like performance and secuti SPI GALS Further, it involves a set of sigh Giicant dccatons about the tion, seated to software development and each of these decisions can have PEERHGEAEE ASL quality, maintainability, performance, and the overall success of the final product. These decisions comprise of ~ esau 2904 Homah wee Selection of Structural elements and their interfaces by which the system is composed rem Behavior as specified in collaborations among those elemenis. eens on Composition of these stfuctural and behavioraFelements igto large subsystem. oe Architectural decisions align with business objectives. Architectural styles guide the organization. Software Design Software design provides a design plan that describes the elements ofa system. how they fit, and work together to fulfill the requirement of the system. The objectives of having a design plan are as follows — To negotiate system requirements, and to set expectations with customers. marketing, and management personnel. Act as a blueprint during the development process. ee aaa luding detailed design, coding. integration, and testing Goals of Architecture chitecture is to identify re fect the structure of a VOf the architecture is to identify requirements that affect th the application, A wel laid arch technical solution and business risks associated with building # \d technical requirements. cture reduces th Is @ bridge between business « Some ofthe SHE costs tem retin se Expose the structure of the system, but hide its implementation details. Realize all the use-cases and sch suv 'tey to address the requirements of various stakeholders. Handle both functional and quality requirements. n’s market position. Reduce the goal of ownership and improve the organizat Improve quality and fiinctionality offered by the system. Improve external confidence in either the organization or system. Limitations + oe engineering. It has Software architecture is still an emerging discipline within software engineering. the following limitations — Lack of tools and standardized ways to represent architecture. Lack of-analysis methods to predict whether architecture will result in an implementation that meets the requirements. ‘ Lack of awareness of the importance of archi ctural design to software development. Lack of tinderstanding of the role of software architect and poor communication among stakeholders. Lack of understanding of the design process, design experience and evaluation of design. | | UNIT —3 DAMENTAL interesting anomaly for the software engineer. The Of test cases that are intended to "demolish" the 2.A 2004 test case yet- undiscovereq 3. A successful te. Testing Principles is one that has a high probability of finding an as- error, Stis one that uncovers an as-yet-undiscovered error. & methods to design effective test cases, a software tand the basic principles that guide software testing. De traceuble to customer requirements. As we have f Software testing is to uncover errors. It follows that the (from the customer's point of view) are those that cause ENG program ¢ofaill co meses ecircm enter nants guia bemplnamed ions . bsrehet testing) bogitagr eee planning Cnehees LO MesuMUCEMEGM Oca” as theirec uicco ents jai caciapoot niet: anes ooo Btecticaces\can, bogin as,sconjasitiahiasien) Gaal Ges peer cout ea iterotore@nMleats can bol planncd andidesisied before any code has been generated. La ne Pareto principle applies to software testing. Stated simply, the Pareto principle implies thut 80 percent of all errors uncovered during testing will likely be traceable to 20 percent of all program components. The problem, of course, is to isolate these suspect components and to thoroughly test them. * Testing should begin “in the small” and progress toward testing “in the large.” The first tests planned and executed generally focus on individual components. As testing progresses, focus shifts in an attempt to find errors in integrated clusters of components and ultimately in the entire system (Chap- ter 18), + Exhaustive testing is not possible. The number of path permutations for even a moderately sized program is exceptionally large (see Section 17.2 for further discussion). For this reason, it is impossible to execute every combi- nation of paths during testing. It is possible, however, to adequately cover + All tests shoula seen, the objective o} most severe detects a a |_ conditions in the component-level design am lovic and to ensure th ed + To be most effective, testing she By most effective, we mean testing thi ors (the primary objective of testing). have been exer id be conducted by an independen, has the highest probabit, third party ity of findin: Testabilicy Seltware testability is simply how easily [a computer program] can be tested. Since testing, a so profoundly difficult, it pays to know what can be done ts streamline uM . : ees a) Characteristies: wo desk) Poor >) Operability. "The better it works, the more efficiently it can be tested." “7 The system has few bugs (bugs add analysis and reporting overhead to the test process) No bugs block the execution of tests. > The product evolves functional stages (allows simultaneous development and testing) Observability. "Whatyou sce is what you test. + Distinct output is generated for each input. System states and variables are visible or queriable during execution. - Past system states and variables are visible or queriable (¢.g., transaction logs). > All factors affecting the output are visible. + Incorrect output is easily identified. j Internal errors are automatically detected through self-testing mechanisms. + Internal errors are automatically reported. Source code is accessible. Controllability: "The better we can control the sofware. the more the testing can be automated and optimized T Al Possible outputs can be generated through some combination of input. ] All code is executable through some combination of input © Sofware and hardware states and variables can be controlled directly by the test engineer. > Inputand output formats are consistent and structured * Tests can be conveniently specified, automated, and repr duced. Decomposability. "By controlling the scope of testing, we can more quickly iso- late problems and perform smarter retesting." = the software : TS Syste, sollware moduies ® built from independent modules PEHY. "The fege aici" be tested independenals, + Pune ess there , 4 MNstoNAL simplign © © test, the mare quickly we can test i mect require, ty (e.g. the fe © necessary to men ure set is the minimum = Structunat ee) propaga- Plicity (og. bs ion o} Code simplicg it and maintenaneey =” * Coding standard is adopted for Stability. “The tay, Changes to u + architecture is modularized to limit the f faults), intact © of inspection er the 1 e. the smarter we will + The design is wet, ell understood + Dependencies be fb od. YeSH internal, external, and shared components are well understood. He eutsmaly and shared P + Technical documentation i wea ht "ntation is specific an iled. + Technical doe, n is specific and detailed. uty sentation ix necurate ee TEST C 1 nord tp Sehup Aerteanes: eee othe design oF ea oe, See challeng- ing as the initial deciee ar ahr Any engineered product eng end ws wasn: other engineered products’can be as roduct itself. other things) can be tested in one of () Knowing the specified function that a product has been designed fe perform, tests can be conducted that demonstrate each function is fully operational while at the same time seare! 2 for errors in each function; @) knowing the internal conducted to ensure that “all workings of a product, tests can be gears mesh," that is, internal operations are performed according to specifications and all inte: al components have been adequately exercised. The first’ test appregch is called black-box te: ae a 2h pagal . SYLSHHNE andaine second, 22 DF wh PANE ON LA ee OAs wwe oe vt soot eV

You might also like