SE&SPM
SE&SPM
) 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 EESThere 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 detectsa 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 eVYou might also like
Software Engineering, A Practitioner's Approach86% (7)Software Engineering, A Practitioner's Approach290 pages 21Cs61: Software Engineering & Project ManagementNo ratings yet21Cs61: Software Engineering & Project Management71 pages Software Product and Process in Software EngineeringNo ratings yetSoftware Product and Process in Software Engineering65 pages Chapter 1 Introduction To Software Engineering and Process ModelsNo ratings yetChapter 1 Introduction To Software Engineering and Process Models129 pages Software Engineering Course Code: 210253No ratings yetSoftware Engineering Course Code: 21025376 pages Software Engineering Full Lectur Note by MR Dagnachw Getachew 2016No ratings yetSoftware Engineering Full Lectur Note by MR Dagnachw Getachew 2016249 pages Faculty Divyam@cdac - In: Divya MG C-DAC, BangaloreNo ratings yetFaculty Divyam@cdac - In: Divya MG C-DAC, Bangalore59 pages SOFTWARE ENGINEERING - PROJECT MANAGEMENT.pptxNo ratings yetSOFTWARE ENGINEERING - PROJECT MANAGEMENT.pptx88 pages