Change Management in Families of Safety-Critical Embedded Systems

Size: px
Start display at page:

Download "Change Management in Families of Safety-Critical Embedded Systems"

Transcription

1 Change Management in Families of Safety-Critical Embedded Systems Zoë Rachael Stephenson This thesis is submitted in partial fulfilment of the requirements for the degree of Doctor of Philosophy. University of York York YO10 5DD UK Department of Computer Science March 2002

2 Abstract This thesis addresses the problem of understanding change and reducing the work needed to estimate and respond to change in families of safety-critical embedded systems. Explicit family feature modelling techniques are developed that record the context within which a feature is valid for each family member. These features are combined with a description of their allowed variation among different members, to provide a complete family feature model. These techniques are used to create a family feature model for a number of industrial projects. Comparisons are made between the ability of the family model and the project processes to accurately estimate change impact. Results show that the family model provides more accurate change impact estimation than the existing project processes. It also provides an understanding of the role of domain knowledge in impact estimation, a method by which different types of specification may be traced to one another throughout the development process, and a process by which individual feature descriptions are transformed into single family descriptions. 2

3 Contents Abstract 2 Acknowledgement 12 Declaration 13 1 Introduction Embedded Systems Operating Constraints Safety-related Software Families Change Characteristics Hypothesis Literature Review Design Process Development Lifecycle Models Automation Traceability Rationale Description Families and Domains Change Impact Software Change Impact Non-software Change Summary Feature Representation 59 3

4 CONTENTS CONTENTS 3.1 Analysis Model Key Concepts Objectives graphs IBIS REMAP OSCS Redux DRCS Summary Representation Assessment Goals Decisions Results Context and Assumptions Summary Representation Synthesis Goal Decision Solution Property Assertions Decision Traces Notation Trace Sheets Analysis and Argumentation Summary Family Representation Introduction Review Design Rationale Approaches Product-line Approaches

5 CONTENTS CONTENTS 4.3 Model Development Feature Association Choice and Choice Constraints Feature Dependencies Trace Sheets Summary Family Feature Model Analysis Scoping Sources Analysis Results Modelling Industrial Project Data Summary Feature Ordering and Resolution Introduction Resolution Representation Motivation Single Model Rationale Process Rationale Specific Resolution Guidelines Correspondence Elaborate Constraint Option Lists Parameters Complex Dependencies Summary Feature Ordering

6 CONTENTS CONTENTS 6.7 Variation and Volatility Hypothesis Method Results Evaluation Conclusions Impact Analysis Accuracy Introduction Family Model Impact Analysis Software Model Impact Analysis Project Data and Measurement Experimental Assessment Hypothesis Method Results Evaluation Conclusions Conclusions and Further Work Review Findings Decision Tracing Findings Family Model Findings Resolution Findings Impact Assessment Findings Further Work A Family Feature Models 195 Definitions 203 Index 212 6

7 List of Figures 1.1 Generic Design Process Context Embedded System Customers Software and Hardware Control Preliminary Concept Summary Program Production [8] Waterfall Model [82] V Model [87, p36] Spiral Model [10, p25] Organisational Context of Draco [69, p565] Intent Structure [93] Example Design Development: Intent Structure IBIS Example Design Development: IBIS The REMAP Scheme [79] Example Design Development: REMAP The OSC Shell Scheme [2] Example Design Development: OSC Shell The Redux Scheme [76] Example Design Development: Redux The DRCS Scheme [50] Example Design Development: DRCS Intent Specification Structure[54, p4] Extended Automatic Programming Paradigm [5, p1263] Example Extended FODA Feature Model [20]

8 LIST OF FIGURES LIST OF FIGURES 3.1 Concept Summary Objectives Graph UML Model IBIS UML Model REMAP UML Model OSCS UML Model Redux UML Model DRCS UML Model IBIS Noise Reduction Example [56, p83] Revised Concept Summary Decision Representation Approach Decision Trace Symbols Decision and Feature Model Decision Trace Relationships Decision Trace References Decision Trace Reference Expressions Trace Sheet Layout Decision Element Specialisation Context Introduction and Extraction Analysis and Argumentation Separate Selection Model Choice Elements: Objectives Graphs Choice Elements: REMAP Choice Elements: OSC Shell Choice Elements: DRCS Choice Elements: Redux Example Abstract Decision Tree [71, p3] Feature Association Feature Association Notation Choice Representation Parameter Representation Choice Notation

9 LIST OF FIGURES LIST OF FIGURES 4.13 Combinatorial Example Extended Choice Constraint Notation Feature Dependency Simple Feature Dependency Notation Complex Feature Dependency Notation Abbreviated Feature Dependency Notation Dependency Example Trace Sheets with Choices Choice Model Summary Choice Notation Summary Example Project Data Example Resolved Model: Thrust Reverser Locks Feature Resolution Representation Feature Resolution and Metamodel Correspondence UML Correspondence UML Correspondence with Composition UML Correspondence with Multiple Composition UML Correspondence with Transitive Associations UML Elaboration with Composites UML Elaboration for Feature Interaction UML Elaboration for Feature Interaction Between Models UML Constraint Incorporation UML Constraint with Modification UML Option UML Option with Common Association UML Choice List UML Choice List through Generalisation UML Selection UML Selection through Generalisation UML Multiplicity Parameter UML Multiplicity Constant

10 LIST OF FIGURES LIST OF FIGURES 6.21 UML Multiplicity Type UML Feature Dependency UML List Feature Dependency Feature Resolution Order Example Features Resolved: (F1,F2,F3,F4) Features Resolved: (F1,F4,F3,F2) Example Dependency Graph Example Trace Sheet Family Selections Correlation of Project Data Volatility with Feature Volatility Correlation of Project Data Volatility with Feature Volatility for Reduced Family Scope Impact Analysis by Features Feature Resolution Impact Analysis by Software Model Algorithmic Expression Example Statechart Example Actual Impact Set Sizes Project Discrepancy and Feature Iterations

11 List of Tables 3.1 Decision Representations Development Progress Representations Common Types of Choice Description Choice Operator Abbreviations Industrial Project Accuracy Data Feature Model Accuracy Data Comparison of Actual Impact Set Sizes

12 Acknowledgement The author would like to acknowledge the support of the Engineering and Physical Sciences Research Council Systems Engineering for Business Process Change managed research programme. Work presented in this thesis was carried out under grant GR/L4872 within that programme. The author would also like to thank Rolls-Royce plc. for additional support and access to industrial project data and domain experts. 12

13 Declaration This thesis makes use of a case study model. Parts of the specification of this model were validated in collaboration with Simon Burton, and all of the detailed implementation work was carried out by Darren Buttle. All other work presented in the thesis was carried out by the author. Earlier results from this strand of work have been presented in a number of workshops, covering issues concerning the safe context of reuse [88], the relationship between change and product families [84], the relationship between decisions and features [85] and the integration of the context analysis techniques into a complete process [1]. Contributions have also been made to a book [17] and a journal paper [15]. 13

14 14 Declaration

15 Chapter 1 Introduction Embedded systems are commonplace nowadays, found in systems such as mobile telephones, televisual equipment, washing machines, dryers, cars and aircraft engines. The development of such systems is a complex engineering process, involving many different disciplines, but it is usually characterised as a design process it takes requirements from customers, designs a product for delivery, assembles it from components and custom parts, and supplies it to the customer. This customer/supplier context is shown in Figure 1.1. The customers are usually everyday consumers, but in some situations, such as the development of car or aircraft engine systems, the customer is an organisation that is also developing a system. In modern embedded systems, there is always a software element. Furthermore, that software is typically used to control a larger system of which it is only one part. The presence of software in the embedded system means that there is a software engineering process within that complex engineering process. Embedded systems research has traditionally not been a popular aspect of software engineering, but recent trends have been addressing this area, particularly product-line software engineering [26]. A product line is a group of systems that share enough similarities for it to be beneficial to build a production environment specifically for that group of systems and embedded systems typically have this type of similarity. This thesis addresses issues surrounding the development of embedded software for families of safety-critical systems. Not only do the issues of embedded software development and safety provide challenges for the process, but that process must reflect the needs of family development as well. This introduces a number of factors, discussed in the following sections. 1.1 Embedded Systems An embedded system is a system that exists within the context of a larger engineered product or environment, called the embedding system. The embedded system typically controls the operation of its surrounding system, although in some situations, such as the mobile telephone, the embedding system is primarily there to make the device portable. When the embedded 15

16 1.1. EMBEDDED SYSTEMS Introduction KEY Business Unit Organisation Role Role Customer System Customer System requirements System System Supplier System Supplier Component Customer Component requirements Components Design Process Component Supplier Component Supplier Figure 1.1: Generic Design Process Context system controls the embedding system, it is called an embedded control system. In customer and supplier terms, the developer of the embedded control system supplies that system to the embedding system developer, as depicted in Figure 1.2. That system is then supplied to yet another customer, whose needs have to be reflected to some extent in the embedded control system requirements. The embedding system developer is responsible for translating those needs into the specification of a control system, and for integrating that control system with the embedding system. This type of control system is implemented as a combination of control hardware and control software, which increases the flexibility of the system at the cost of additional complexity. This complexity is illustrated in Figure 1.3. Here, the software is encapsulated within an execution unit, which is just one of a number of systems from a range of suppliers that make up the control system. It can be seen, then, that complexity arises not only from the software/hardware split, but from a range of sources: The software executes on a processor with processor execution support from other hardware such as watchdog timers and specialised input/output connections. Some control functions may be implemented using hardware devices. These may supply inputs and/or outputs for the software, or they may function completely independently. They may be implemented using a fixed technology such as custom-made integrated circuits, or use a more flexible technology such as field-programmable gate arrays (FP- GAs) 1. 1 FPGAs are a type of integrated circuit that can be reprogrammed after manufacture. 16

17 Introduction 1.1. EMBEDDED SYSTEMS KEY Business Unit Organisation Role Role Customer System Customer System requirements System Indirect customer Embedding System System Supplier Control System Customer Direct customer Control system requirements Control system Supplier Embedded Control system Control System Supplier Figure 1.2: Embedded System Customers KEY Business Unit Role Role Control system Control System Supplier Control Unit Customer Software and execution requirements Software system Software execution Hardware Customer Control Unit Supplier Software Customer Hardware device Control Unit Supplier Execution hardware requirements Hardware Software requirements Software Software Hardware Supplier Software Software Supplier Figure 1.3: Software and Hardware Control 17

18 1.1. EMBEDDED SYSTEMS Introduction There may be any number of maintenance, fault diagnosis and alternative function provisions (such as pre-flight checks in an aerospace application) that require additional functionality alongside and within the software. Sensors and actuators are connected, perhaps through intermediate media, and through input and output connections, to the software. Control devices implement the control functions needed in the physical world, manipulating the embedding system. Some are under the control of actuators connected to the embedded control system, but others are controlled independently, such as an emergency power-off switch for safety reasons. The control system may employ some physical redundancy or distribution to improve its fault-tolerance and performance. The system being controlled may be a part of a larger collection of systems, all of which must take into account details of the others operation. An assembly system must have details of the sources of the parts that it assembles. An engine system must be developed according to the vehicle it powers. A mobile telephone must interface with a telecommunications network. The system may be used in different ways at different times. Most embedded control systems will have an engineering mode in which additional information is presented and maintenance functions can be accessed. Some may also have to correlate their mode with that of the other systems with which they co-operate. Each of these sources provides additional complexity in the form of information that must be taken into account during the design of the software. Some of this information takes the form of interface definitions, some is mixed in with requirements definitions, and some is domain knowledge that might never be recorded explicitly. This information provides the context for the design process. The term context is fairly general, and will be qualified where possible; some examples of such qualification are: Context Information that is taken into account when judging a particular design. System Context All information that is taken into account when designing a whole system. This could also be viewed as domain knowledge. Feature Context All of the the information that pertains to a single feature. Sufficient Context Enough explicit contextual information to be able to judge a design effectively. This terminology is necessarily subjective; the unifying characteristic of design is that it is performed and understood by individuals, and each individual has a different view of the design. 18

19 Introduction 1.2. OPERATING CONSTRAINTS It would be tempting to assume that all of the context can be made explicit, or even that all known tacit context can be named and referred to. The definition of sufficient context above replaces this assumption with a weaker, more useful assumption that enough of the context can be recorded to allow any designer in the same profession to understand the way in which the system has been designed. Experiments involving system context have shown that at most ten percent of that context will be represented explicitly in the resulting code [69, p569]. In the development of an embedded system, there is a danger that important dependencies between embedding system elements will not have an explicit representation in the implementation. With such a poor description of the traceability between features of the embedding system and the required properties of the embedded system, the accuracy of change impact analysis will be severely reduced. 1.2 Operating Constraints The systems studied in this thesis are engine control systems produced by Rolls-Royce plc. These systems are developed under a number of significant constraints, and these constraints apply to some degree to the work discussed here. In the development process for a safety-critical system, human responsibility for the behaviour of the system is crucial. There must have been human involvement in every aspect of the resulting product, to some degree. Purely automatic generative techniques would need some kind of external assessment; they would only be of benefit if they were significantly easier for a human engineer to assess than if the engineer were more directly involved in the design process. Instead, the work in this thesis will focus on improving the ability to judge design effort that is being reused. One of the important features of a safety-critical product is the argument that is put forward to support the claim that it is safe. This is typically based on evidence that shows that certain processes have been carried out and that certain properties of the system hold. The methods proposed in this thesis should complement this process, providing a way of identifying design decisions and properties, and linking them into the argumentation process. Each product that is produced matches with one of a number of customers, and a subset of a small number of suppliers. There is no guarantee that any one of these other organisations will be amenable to family-related descriptions of the control product. Even if a customer is amenable to a family-related description, it is likely that they will impose their own model for the description of families, regardless of any such model in use within the supplier organisation. Hence, issues that relate to the arrangement of the products as a family should be kept separate from issues about the decisions that affect a single product. This is especially important in situations where parts of the system are sometimes under the control of another organisation. Safety concerns are dealt with in several steps throughout the development, each step assessing a design description and propagating derived requirements to the next step. This causes 19

20 1.3. SAFETY-RELATED SOFTWARE Introduction an interweaving of requirements and design information throughout the development process. Consequently, there is no single point at which the process stops dealing with problem descriptions and starts dealing with solution specifications. Even though there is a clear problem space and a clear solution space, the process does not flow neatly from one to another. Any such separation would be extremely contrived given the nature of the process, and so the techniques developed in the thesis will ignore the use of the separation between the two spaces as way of managing complexity. There are a number of different languages and notations in use for the description of the different members of the control system family, for different stages of development, and for different parts of the control system itself. There is no single representative notation from this set that would be simple to introduce for the convenience of a broad readership. Instead, UML notations will be used to describe products, even though UML itself is not yet in widespread use in the safety-critical systems field. 1.3 Safety-related Software Embedded control software will often control a system that, in some situations, could directly lead to injury or loss of life. Examples include nuclear reactors and aircraft engines. To provide assurance that such systems are safe to operate, monitoring authorities and legislation are put in place so that the relevant authority must certify the system as safe before it may be put into operation. Certification involves the presentation of an argument claiming that the system is safe. The argument appeals to the requirements laid down in the relevant safety standard, and supports this claim with evidence about the system s development. Together, these form a safety case. While evidence about the software is necessary, it alone cannot show that the software is safe, nor that the system is safe. Evidence about the software is combined with evidence about the system to show that the system is safe, and that the software plays an appropriate role within the system. In many cases, tools will have been used to generate some or all of the implementation. Such tools must be demonstrated to have the same level of integrity as the implementation itself. This places an additional burden on the software developer in choosing and using development tools. Software safety evidence will typically involve software provisions to mitigate against faults and hazards in the system, and analysis to show that the software itself operates correctly in its context. The need to be able to perform this analysis imposes constraints on the way the software is developed. This ensures that the appropriate analysis can be carried out. Specification conformance is one aspect of this analysis. This shows that an implementation meets its specification. Testing is used to gain confidence that this is the case, but testing cannot generally provide evidence of complete conformance. If necessary, this can be shown through 20

21 Introduction 1.4. FAMILIES proof. Proof, and other kinds of analysis, impose a number of very specific and important constraints on the implementation: All memory allocation is statically bounded. Any use of dynamic memory allocation must be shown to have a static upper bound, to ensure that the software will never try to use more memory than it has available. In particular, the stack size during execution must be statically bounded. This means that calling structures must be carefully examined, and the use of recursion as an implementation technique is severely limited. All loops are statically bounded. A control system must operate in real time, and therefore deadlines from the embedding system, the requirements and the devices that support operation and execution of the software must all be met. Schedulability analysis is used to show that deadlines are being met, and that requires worst-case execution times for each task an unbounded loop prevents the calculation of this value. All code is reachable. This helps to eliminate the possibility of untestable code in the implementation. Execution paths are statically determined. This is necessary for the effective application of proof of specification conformance, and it prevents the general use of reflection and dynamic dispatch as ways of promoting flexibility in the implementation. Increasingly, these constraints are being met by modern compiler technology such as analysis of garbage collection for real-time systems [58, 75] and the use of optimising compilers to reduce dynamic dispatch to static method calls wherever possible. However, to use such technology it must be effective in worst-case situations, and it must be demonstrated to be safe to at least the same level as the implementation that it creates. Neither of these conditions hold in general at present, and without them compiler technology cannot be use as the basis of a family-oriented approach in this domain. 1.4 Families Families of systems are groups of systems that share common characteristics, typically the types of operation that they perform, the types of information that they manipulate, or the types of role that they play. The similarities between family members are exploited to increase the potential for reuse and automatic generation within the family. As with any reuse-based technique, there is an initial set-up cost that the organisation is expected to recover through cost savings on subsequent projects. The technology used to support family-based development is generally based around automated tools. This is a significant issue for safety-related software development, but also for embedded software development as well: 21

22 1.5. CHANGE CHARACTERISTICS Introduction There will already be a number of tools in use for the development of the control software and the rest of the control system. If family automation software tools are unable to work alongside those tools, there will be significant resistance to their use within the organisation. As explained previously, since the tools generate the implementation, or assist in generation, they must be demonstrably correct and safe in doing so. This also imposes an additional cost in obtaining and maintaining development tools. The generated implementation must obey all of the constraints set out previously regarding static determination and reachability. Current family generator technology does not necessarily meet these constraints well. Additional work would be required, firstly to check whether constraints are being met, and then to perform any changes to the technology to ensure that they are being met. This extra work would obviously increase the cost of using family member generation tools. For safety-critical software, the important issue is how to organise the information needed to correctly build and assess the software. The focus of the current generations of family management systems is product reuse, run-time dynamism and automated generation, none of which provide better facilities for the assessment of the software product. Hence, none of these technologies is considered to be an adequate solution, although they may eventually support the solution that is developed. When talking about family development, there are two levels that must be distinguished. Firstly, there are decisions that pertain to the development of each individual family member. Then, there are choices that determine the particular member of the family to be built. In this thesis, the terms choice and decision will be used consistently in this manner; choices select among different family members, while decisions are about the development progress of an individual family member. This is especially important when discussing rationale the rationale for decisions for a particular family member will typically be based on trade-off analyses and other engineering judgements, whereas the rationale for a choice among family members is dependent on the customer domain. 1.5 Change Characteristics There are a number of stakeholders that influence the development of embedded control software, and changes may arise from any of them. The stakeholders and the kinds of change they generate for this type of development are typically as follows: Customer The customer will make changes in the specification of the system in reviews during development, validation during deployment, and upgrades during operation. If the customer is integrating the embedding system with other systems, there will also 22

23 Introduction 1.6. HYPOTHESIS be changes arising from misunderstandings or errors in that interface specification too. These changes may arise and be dealt with at any level in the chain of customers and suppliers that leads to the software development. The nature of the domain of interest to this thesis is such that these changes are typically small, frequent and widely distributed across the specification. Certifier A certification authority can cause change either by altering its safety requirements, or by rejecting a safety case based on a failure to provide a compelling argument with respect to some of those requirements. System Integration between the control system and the rest of the embedding system can cause change, at any point during development. Most commonly, changes will occur when a full integration is attempted, and these tend to cause a change in the control software rather than a change to the embedding system the software is generally seen as being more amenable to change. Direct Supplier The most direct supplier for the control software is in fact the supplier of the hardware execution platform. Changes in the specification or availability of the processor or its support hardware, or even a change to the speed of the processor (e.g. to accommodate heat management requirements) may affect the software. Indirect Supplier Indirect suppliers are those that supply other parts. These include the actuators, sensors and control devices of the control system, plus the suppliers of other devices and subsystems for the embedding system. These details are all reflected in the software in some way, and changes in their behaviour or even in the way in which they are composed will affect the software. To be effective in managing change, it must be possible to address and assess changes that arise from any of these sources. However, unless the software is organised with respect to the structure of each of these sources, those changes will be spread out across different parts of the software. In practice, this kind of organisation has been found difficult to achieve, with architectural style [74] and aspect orientation [49] being used to address these multiple dimensions where necessary. 1.6 Hypothesis Software development in this field is beset by a number of closely-related problems: Dependencies among entities in the system context, especially in other control system components, are not necessarily reflected in the interfaces within the software. This reduces the accuracy of change impact analysis based on design and implementation results alone. 23

24 1.6. HYPOTHESIS Introduction family domain feature domain Choice select Feature Figure 1.4: Preliminary Concept Summary The constraints of safety-related software development prohibit the use of most techniques currently employed to give flexibility to a software implementation. Constant, small changes from a variety of sources mean that many changes are made in potentially disparate parts of the software implementation. Thus there is a need for techniques that address these problems. They mainly concern the frequency of change and the way in which its impact is determined. Hence, this thesis will address the following hypothesis: In families of safety-critical embedded systems, change impact can be predicted more accurately by modelling the relevant context for each feature early than by only analysing context when features change. To test this hypothesis, a model is required for the representation of features and their relevant context. This is addressed in Chapter 3 with a decision-based development model. The features must combine to form family members; the description of allowed combinations is explored in Chapter 4. The general relationship between the description of families and that of features is shown in Figure 1.4, in terms of related domains and the elements that they contain. Chapter 6 studies the way in which features combine. Finally, in Chapter 7, the accuracy of the feature model is assessed by comparing its impact analysis properties with data from projects in which impact analysis is not based on an explicit model of system context, but instead performed by domain experts directly. 24

25 Chapter 2 Literature Review The introduction in the previous chapter identified problems in representing system context information, performing impact analysis, and dealing with small changes from a variety of sources. Aspects of these issues are addressed in existing literature; this chapter reviews the relevant literature to put those issues in context and identify the approaches taken to address them. Where those approaches could conflict with the requirements of a safety-critical system design process, those conflicts are also described. Section 2.1 reviews design processes and the approaches taken to record system context information such as design rationale. In Section 2.2, domain-based techniques are reviewed, and the dependency models used in family-based techniques are assessed. Section 2.3 examines change impact analysis techniques. The major findings are summarised in Section Design Process Development Lifecycle Models Early work on the nature of software design described it in terms of stages of development, from a less well-developed description to a more complete one. This view, initially coming from similar development processes used in industry, gave rise to the first attempts at defining a software development process model. Benington describes a program production process used for the development of a real-time defence system during the mid-1950s [8]; the diagram in Figure 2.1 is adapted from Figure 4 of that paper. In this process, the operational plan and operational specifications represent the bulk of the requirements. The machine specifications step of the process is indicative of the expensive, non-standardised computing hardware of the time. Further levels of refinement are given in terms of programs and code, followed by a number of testing and integration stages based on the specifications and plans developed earlier. Interestingly, the following observation is made about testing: 25

26 2.1. DESIGN PROCESS Literature Review OPERATIONAL PLAN MACHINE SPECIFICATIONS OPERATIONAL SPECIFICATIONS PROGRAM SPECIFICATIONS CODING SPECIFICATIONS CODING DESIGN TESTING PARAMETER TESTING (SPECIFICATIONS) ASSEMBLY TESTING (SPECIFICATIONS) SHAKEDOWN SYSTEM EVALUATION Figure 2.1: Program Production [8] It is certain that the program will never be subjected to all possible input conditions during its lifetime. For this reason, one must accept the fact that testing will be sampling only. [8] This forms a basis for later assertions about the adequacy of testing as a method for eliminating errors. However, the process as described does not show how to manage the results of tests and feed that information back into that process. A later work on software development introduces a complete waterfall model [82]. The paper starts with a simple model based on observations from other work (including the paper introduced above) and elaborates it in accordance with a number of recommendations: 1. Complete program design before analysis and coding begins. This equates to the modern practice of responding to requirements with an architectural design before deciding on more detailed implementation matters (although architectural models emphasise structure and decomposition [32].) 2. Documentation must be current and complete. Even in this early model, documentation of the activities at various stages is considered extremely important; the author claims that if a review of the documentation finds it to be inadequate, all other activities must be suspended to make way for documentation improvement an even more radical notion today than it might have been at the time. There has always been a need for documentation, especially with the move to record more design rationale [67]. 26

27 Literature Review 2.1. DESIGN PROCESS 3. Do the job twice if possible. The idea of prototyping and iterative product refinement had been in place in the manufacturing industry well before this work, but this is an early attempt to document that process for software development. 4. Testing must be planned, controlled and monitored. In this version of the process, tests are planned according to the specification of the program design (the architectural design introduced above.) Previous models did not explicitly describe a test planning process, now regarded as an important aspect of testing. 5. Involve the Customer. The constant interest in requirements elicitation techniques [22] indicates that the problem of incomplete, inconsistent customer requirements that are prone to change still pervades software development. This recommendation allows for customer reviews throughout the process to ensure that the development is still relevant to the customer. The final version of the model is shown in Figure 2.2, adapted from Figure 10 of the original source material. In a paper aimed at debugging techniques, Mills [66] prescribes a top-down process based on the idea of describing a program in terms of standard control structures and code elements, and calls to subprograms. These subprograms are then described in the same manner, until no further subprogram calls are left. This is a kind of refinement process, and indeed it was heralded as a way to manage program complexity, and also as a vehicle for structured inductive program proof if the program control structures and code elements meet the requirements, assuming that the subprograms meet their requirements, then the program as a whole meets its requirements. This is one of the more rigorous interpretations of the top-down development paradigm, interestingly presented in terms of the single linguistic framework of the final implementation. A different take on the software development process is found in a paper on system decomposition [70]. Here, information-hiding criteria are compared to the temporal modularisation produced by classical refinement. Information hiding was found to produce designs in which modules could be easily reused to form a family of similar programs. This work emphasises the need to consider families of programs; it even goes as far as to make a recommendation about the way in which design decisions ought to be tackled: We propose... one begins with a list of difficult design decisions or design decisions which are likely to change. [70] The intent here is to ensure that those decisions are encapsulated in modules with more stable interfaces before making use of those modules, and hence isolating changes. The notion of a software engineering process, and a comprehensive description of that process, appeared in 1976 [9]. However, reasonably mature process models describing development and feedback were in use throughout the 1970s Feedback was a part of the waterfall model 27

28 28 Figure 2.2: Waterfall Model [82] SYSTEM REQUIREMENTS GENERATION DOCUMENT NO. 1 SOFTWARE REQUIREMENTS SYSTEM REQUIREMENTS DOCUMENT NO. 2 PRELIMINARY DESIGN (SPEC) SOFTWARE REQUIREMENTS DOCUMENT NO. 3 INTERFACE DESIGN (SPEC) PRELIMINARY PROGRAM DESIGN PSR PRELIMINARY SOFTWARE REVIEW DOCUMENT NO. 4 FINAL DESIGN (SPEC) ANALYSIS DOCUMENT NO. 4 FINAL DESIGN (SPEC) PRELIMINARY DESIGN ANALYSIS PROGRAM DESIGN CSR CRITICAL SOFTWARE REVIEW PROGRAM DESIGN CODING DOCUMENT NO. 5 TEST PLAN (SPEC) TESTING USAGE CODING TESTING FSAR FINAL SOFTWARE ACCEPTANCE REVIEW OPERATIONS DOCUMENT NO. 6 OPERATING INSTRUCTIONS 2.1. DESIGN PROCESS Literature Review

29 Literature Review 2.1. DESIGN PROCESS as described by Royce [82], and became an explicit organisational feature in the description of the V model [87]. This model takes the stages of development from a waterfall-style process model, and arranges them in a V shape: This format is intended to depict the complementary processes of problem decomposition on the left and system recomposition on the right. [87, p38] The diagram in Figure 2.3 shows the original arrangement of activities in the V model. A key aspect of this process model is that the recomposition activities include testing and validation, taking into account information from the corresponding decomposition stage. If these processes fail, feedback is given to that decomposition stage so that the problem may be addressed. For some situations, however, there may be no way of addressing the problem at that stage, and the software engineer must revert to an even earlier design to try a different approach. This design backtracking phenomenon is identified in a paper that attempts to formalise the design step in terms of a restatement between linguistic systems [53]. Here it is shown that situations can exist in which no further progress can be made in refining a design to a new form because of the forms that the design has taken along the design path. A similar situation can occur in program families; certain decisions may be made early in the design that preclude some subsequent decisions [71]. A radical shift in thinking from linear and iterative process models occurred with the introduction of the spiral development model [10], shown in Figure 2.4. This model organises development into cycles of assessment, analysis, prototyping, implementation, testing and planning, with commitments being made in moving from one cycle to another. The emphasis in this model, which is usually specialised for use with a particular development, is on iterative design cycles with consensus between stakeholders as risks are mitigated and commitments are made. Unlike the more sophisticated versions of the waterfall model, there is no explicit test planning early on, although that could be incorporated into the testing phase of early cycles to plan for the testing of later cycles commitments. Following on from these efforts, a number of standardisations of the software lifecycle process have been proposed [91, 44]. The most recent software lifecycle process standard is ISO12207 [45]. These efforts serve to standardise the terminology of process models and to ensure that all of the necessary lifecycle components have been accounted for. They must still be instantiated for use in a particular situation, however. Models of the development lifecycle represent the development of a single product, from concept to realisation. There is no support in the standard lifecycle models, nor in the standards documents, for the development of families of systems. Change is addressed, but in terms of validation and rework rather than specifically taking into account the differences between family members. 29

30 30 Figure 2.3: V Model [87, p36] (HAC) SOFTWARE DEVELOPMENT LIFE CYCLE REQUIRED OPERATIONAL CAPABILITY (ROC) RESEARCH PHASE CONCEPTUAL PHASE DESIGN & DEVELOPMENT PHASE ENGINEERING STUDIES EXPERIMENTAL DEVELOPMENT CONCEPT EVALUATION SYSTEM REQUIREMENTS REVIEW (SRR) SRR SYSTEM DECOMPOSITION & ALLOCATION SYSTEM DESIGN REVIEW (SDR) SOFTWARE REQUIREMENTS SOFTWARE SUBSYSTEM DESIGN REVIEW PRELIMINARY SOFTWARE ANALYSIS * DESIGN PRELIMINARY DESIGN REVIEW (PDR) DETAILS SOFTWARE ANALYSIS & DESIGN CRITICAL DESIGN REVIEW (COR) CERTIFICATION VALIDATION VALIDATION VALIDATION VERIFICATION VERIFICATION VERIFICATION VERIFICATION CODING & DEBUG START CPCI TEST SOFTWARE CPCI TESTING SOFTWARE SUBSYSTEM INTEGRATION & TESTING TEST & EVALUATION PHASE SOFTWARE SYSTEM INTEGRATION & TESTING SOFTWARE/ HARDWARE INTEGRATION & TESTING SYSTEM PERFORMANCE TESTING ACCEPTANCE TEST & EVALUATION FUNCTIONAL CONFIGURATION AUDIT (FCA) END OF OT&E OPERATIONAL TESTING & EVALUATION (OT&E) CUSTOMER DELIVERY & PHYSICAL CONFIGURATION AUDIT (PCA) OPERATIONS & MAINTENANCE (KDTM) PHASE OPERATION & MAINTENANCE (O & M) 2.1. DESIGN PROCESS Literature Review

To introduce software process models To describe three generic process models and when they may be used

To introduce software process models To describe three generic process models and when they may be used Software Processes Objectives To introduce software process models To describe three generic process models and when they may be used To describe outline process models for requirements engineering, software

More information

Software Engineering. Software Processes. Based on Software Engineering, 7 th Edition by Ian Sommerville

Software Engineering. Software Processes. Based on Software Engineering, 7 th Edition by Ian Sommerville Software Engineering Software Processes Based on Software Engineering, 7 th Edition by Ian Sommerville Objectives To introduce software process models To describe three generic process models and when

More information

And the Models Are 16-03-2015. System/Software Development Life Cycle. Why Life Cycle Approach for Software?

And the Models Are 16-03-2015. System/Software Development Life Cycle. Why Life Cycle Approach for Software? System/Software Development Life Cycle Anurag Srivastava Associate Professor ABV-IIITM, Gwalior Why Life Cycle Approach for Software? Life cycle is a sequence of events or patterns that are displayed in

More information

Software Process for QA

Software Process for QA Software Process for QA Basic approaches & alternatives CIS 610, W98 / M Young 1/7/98 1 This introduction and overview is intended to provide some basic background on software process (sometimes called

More information

A Framework for Software Product Line Engineering

A Framework for Software Product Line Engineering Günter Böckle Klaus Pohl Frank van der Linden 2 A Framework for Software Product Line Engineering In this chapter you will learn: o The principles of software product line subsumed by our software product

More information

ELECTROTECHNIQUE IEC INTERNATIONALE 61508-3 INTERNATIONAL ELECTROTECHNICAL

ELECTROTECHNIQUE IEC INTERNATIONALE 61508-3 INTERNATIONAL ELECTROTECHNICAL 61508-3 ª IEC: 1997 1 Version 12.0 05/12/97 COMMISSION CEI ELECTROTECHNIQUE IEC INTERNATIONALE 61508-3 INTERNATIONAL ELECTROTECHNICAL COMMISSION Functional safety of electrical/electronic/ programmable

More information

Modular Safety Cases

Modular Safety Cases Modular Safety Cases Facilitating Incremental Upgrade to Military Capability by Managing the Complexity of Safety Assurance Executive Summary Maintaining military capability at state of the art levels,

More information

Software Engineering Reference Framework

Software Engineering Reference Framework Software Engineering Reference Framework Michel Chaudron, Jan Friso Groote, Kees van Hee, Kees Hemerik, Lou Somers, Tom Verhoeff. Department of Mathematics and Computer Science Eindhoven University of

More information

Software Development Processes. Software Life-Cycle Models

Software Development Processes. Software Life-Cycle Models 1 Software Development Processes Sequential, Prototype-based RAD, Phased, Risk-based Spiral (c) 1998 M Young CIS 422/522 4/3/98 1 Software Life-Cycle Models Breaking projects down into pieces for... Planning

More information

University of Paderborn Software Engineering Group II-25. Dr. Holger Giese. University of Paderborn Software Engineering Group. External facilities

University of Paderborn Software Engineering Group II-25. Dr. Holger Giese. University of Paderborn Software Engineering Group. External facilities II.2 Life Cycle and Safety Safety Life Cycle: The necessary activities involving safety-related systems, occurring during a period of time that starts at the concept phase of a project and finishes when

More information

Questions? Assignment. Techniques for Gathering Requirements. Gathering and Analysing Requirements

Questions? Assignment. Techniques for Gathering Requirements. Gathering and Analysing Requirements Questions? Assignment Why is proper project management important? What is goal of domain analysis? What is the difference between functional and non- functional requirements? Why is it important for requirements

More information

Dependable (Safe/Reliable) Systems. ARO Reliability Workshop Software Intensive Systems

Dependable (Safe/Reliable) Systems. ARO Reliability Workshop Software Intensive Systems Dependable (Safe/Reliable) Systems Composing, Analyzing and Validating s to Assess / Develop / Validate Methods and Supporting Tools for the Creation of Dependable Systems ARO Reliability Workshop Intensive

More information

Requirements Traceability. Mirka Palo

Requirements Traceability. Mirka Palo Requirements Traceability Mirka Palo Seminar Report Department of Computer Science University of Helsinki 30 th October 2003 Table of Contents 1 INTRODUCTION... 1 2 DEFINITION... 1 3 REASONS FOR REQUIREMENTS

More information

Software Development Processes. Software Life-Cycle Models. Process Models in Other Fields. CIS 422/522 Spring 1998 1

Software Development Processes. Software Life-Cycle Models. Process Models in Other Fields. CIS 422/522 Spring 1998 1 1 Software Development Processes Sequential, Prototype-based RAD, Phased, Risk-based Spiral (c) 1998 M Young CIS 422/522 1/10/99 1 Software Life-Cycle Models Breaking projects down into pieces for... Planning

More information

BCS HIGHER EDUCATION QUALIFICATIONS Level 6 Professional Graduate Diploma in IT. March 2013 EXAMINERS REPORT. Software Engineering 2

BCS HIGHER EDUCATION QUALIFICATIONS Level 6 Professional Graduate Diploma in IT. March 2013 EXAMINERS REPORT. Software Engineering 2 BCS HIGHER EDUCATION QUALIFICATIONS Level 6 Professional Graduate Diploma in IT March 2013 EXAMINERS REPORT Software Engineering 2 General Comments The pass rate this year was significantly better than

More information

6. Software Lifecycle Models. A software lifecycle model is a standardised format for planning organising, and running a new development project.

6. Software Lifecycle Models. A software lifecycle model is a standardised format for planning organising, and running a new development project. 6. Software Lifecycle Models A software lifecycle model is a standardised format for planning organising, and running a new development project. Hundreds of different kinds of models are known and used.

More information

Process Models and Metrics

Process Models and Metrics Process Models and Metrics PROCESS MODELS AND METRICS These models and metrics capture information about the processes being performed We can model and measure the definition of the process process performers

More information

CS 389 Software Engineering. Lecture 2 Chapter 2 Software Processes. Adapted from: Chap 1. Sommerville 9 th ed. Chap 1. Pressman 6 th ed.

CS 389 Software Engineering. Lecture 2 Chapter 2 Software Processes. Adapted from: Chap 1. Sommerville 9 th ed. Chap 1. Pressman 6 th ed. CS 389 Software Engineering Lecture 2 Chapter 2 Software Processes Adapted from: Chap 1. Sommerville 9 th ed. Chap 1. Pressman 6 th ed. Topics covered Software process models Process activities Coping

More information

Developing software which should never compromise the overall safety of a system

Developing software which should never compromise the overall safety of a system Safety-critical software Developing software which should never compromise the overall safety of a system Ian Sommerville 1995 Software Engineering, 5th edition. Chapter 21 Slide 1 Objectives To introduce

More information

AP1000 European 18. Human Factors Engineering Design Control Document

AP1000 European 18. Human Factors Engineering Design Control Document 18.2 Human Factors Engineering Program Management The purpose of this section is to describe the goals of the AP1000 human factors engineering program, the technical program to accomplish these goals,

More information

Classical Software Life Cycle Models

Classical Software Life Cycle Models Classical Software Life Cycle Models SWEN 301 Trimester 1, 2015 Lecturer: Dr Hui Ma Engineering and Computer Science Lecture slides make use of material provided on the textbook's companion website Motivation

More information

Karunya University Dept. of Information Technology

Karunya University Dept. of Information Technology PART A Questions 1. Mention any two software process models. 2. Define risk management. 3. What is a module? 4. What do you mean by requirement process? 5. Define integration testing. 6. State the main

More information

IV. Software Lifecycles

IV. Software Lifecycles IV. Software Lifecycles Software processes and lifecycles Relative costs of lifecycle phases Examples of lifecycles and processes Process maturity scale Information system development lifecycle Lifecycle

More information

(Refer Slide Time: 01:52)

(Refer Slide Time: 01:52) Software Engineering Prof. N. L. Sarda Computer Science & Engineering Indian Institute of Technology, Bombay Lecture - 2 Introduction to Software Engineering Challenges, Process Models etc (Part 2) This

More information

SOFTWARE CONFIGURATION MANAGEMENT GUIDEBOOK

SOFTWARE CONFIGURATION MANAGEMENT GUIDEBOOK Office of Safety and Mission Assurance NASA-GB-9503 SOFTWARE CONFIGURATION MANAGEMENT GUIDEBOOK AUGUST 1995 National Aeronautics and Space Administration Washington, D.C. 20546 PREFACE The growth in cost

More information

Software Processes. The software process. Generic software process models. Waterfall model. Waterfall model phases

Software Processes. The software process. Generic software process models. Waterfall model. Waterfall model phases Software Processes CSC 221 Introduction to Software Engineering software processes extract from Sommerville s chapter 3 slides Alan Dix Coherent sets of activities for specifying, designing, implementing

More information

Chap 1. Introduction to Software Architecture

Chap 1. Introduction to Software Architecture Chap 1. Introduction to Software Architecture 1. Introduction 2. IEEE Recommended Practice for Architecture Modeling 3. Architecture Description Language: the UML 4. The Rational Unified Process (RUP)

More information

Lecture 03 (04.11.2013) Quality of the Software Development Process

Lecture 03 (04.11.2013) Quality of the Software Development Process Systeme hoher Qualität und Sicherheit Universität Bremen, WS 2013/14 Lecture 03 (04.11.2013) Quality of the Software Development Process Christoph Lüth Christian Liguda Your Daily Menu Models of Software

More information

Software Engineering Introduction & Background. Complaints. General Problems. Department of Computer Science Kent State University

Software Engineering Introduction & Background. Complaints. General Problems. Department of Computer Science Kent State University Software Engineering Introduction & Background Department of Computer Science Kent State University Complaints Software production is often done by amateurs Software development is done by tinkering or

More information

Requirements engineering

Requirements engineering Learning Unit 2 Requirements engineering Contents Introduction............................................... 21 2.1 Important concepts........................................ 21 2.1.1 Stakeholders and

More information

The Software Development Process

The Software Development Process Systeme hoher Qualität und Sicherheit Universität Bremen WS 2015/2016 Lecture 03 (26.10.2015) The Software Development Process Christoph Lüth Jan Peleska Dieter Hutter Your Daily Menu Models of software

More information

Improving Interoperability in Mechatronic Product Developement. Dr. Alain Biahmou, Dr. Arnulf Fröhlich, Dr. Josip Stjepandic

Improving Interoperability in Mechatronic Product Developement. Dr. Alain Biahmou, Dr. Arnulf Fröhlich, Dr. Josip Stjepandic International Conference on Product Lifecycle Management 1 Improving Interoperability in Mechatronic Product Developement Dr. Alain Biahmou, Dr. Arnulf Fröhlich, Dr. Josip Stjepandic PROSTEP AG Dolivostr.

More information

What is a life cycle model?

What is a life cycle model? What is a life cycle model? Framework under which a software product is going to be developed. Defines the phases that the product under development will go through. Identifies activities involved in each

More information

Design with Reuse. Building software from reusable components. Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 14 Slide 1

Design with Reuse. Building software from reusable components. Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 14 Slide 1 Design with Reuse Building software from reusable components. Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 14 Slide 1 Objectives To explain the benefits of software reuse and some reuse

More information

Objectives. The software process. Basic software process Models. Waterfall model. Software Processes

Objectives. The software process. Basic software process Models. Waterfall model. Software Processes Software Processes Objectives To introduce software process models To describe three generic process models and when they may be used To describe outline process models for requirements engineering, software

More information

Unit 1 Learning Objectives

Unit 1 Learning Objectives Fundamentals: Software Engineering Dr. Rami Bahsoon School of Computer Science The University Of Birmingham r.bahsoon@cs.bham.ac.uk www.cs.bham.ac.uk/~rzb Office 112 Y9- Computer Science Unit 1. Introduction

More information

SysML Modelling Language explained

SysML Modelling Language explained Date: 7 th October 2010 Author: Guillaume FINANCE, Objet Direct Analyst & Consultant UML, the standard modelling language used in the field of software engineering, has been tailored to define a modelling

More information

Software Engineering. Software Development Process Models. Lecturer: Giuseppe Santucci

Software Engineering. Software Development Process Models. Lecturer: Giuseppe Santucci Software Engineering Software Development Process Models Lecturer: Giuseppe Santucci Summary Modeling the Software Process Generic Software Process Models Waterfall model Process Iteration Incremental

More information

Meta-Model specification V2 D602.012

Meta-Model specification V2 D602.012 PROPRIETARY RIGHTS STATEMENT THIS DOCUMENT CONTAINS INFORMATION, WHICH IS PROPRIETARY TO THE CRYSTAL CONSORTIUM. NEITHER THIS DOCUMENT NOR THE INFORMATION CONTAINED HEREIN SHALL BE USED, DUPLICATED OR

More information

Chapter 4 Software Lifecycle and Performance Analysis

Chapter 4 Software Lifecycle and Performance Analysis Chapter 4 Software Lifecycle and Performance Analysis This chapter is aimed at illustrating performance modeling and analysis issues within the software lifecycle. After having introduced software and

More information

Lecture 03 (26.10.2015) The Software Development Process. Software Development Models. Where are we? Your Daily Menu.

Lecture 03 (26.10.2015) The Software Development Process. Software Development Models. Where are we? Your Daily Menu. Your Daily Menu Systeme hoher Qualität und Sicherheit Universität Bremen WS 2015/2016 Lecture 03 (26.10.2015) The Software Development Process Christoph Lüth Jan Peleska Dieter Hutter Models of software

More information

SOFTWARE DEVELOPMENT STANDARD FOR SPACECRAFT

SOFTWARE DEVELOPMENT STANDARD FOR SPACECRAFT SOFTWARE DEVELOPMENT STANDARD FOR SPACECRAFT Mar 31, 2014 Japan Aerospace Exploration Agency This is an English translation of JERG-2-610. Whenever there is anything ambiguous in this document, the original

More information

Software Engineering. What is a system?

Software Engineering. What is a system? What is a system? Software Engineering Software Processes A purposeful collection of inter-related components working together to achieve some common objective. A system may include software, mechanical,

More information

Introduction to Software Paradigms & Procedural Programming Paradigm

Introduction to Software Paradigms & Procedural Programming Paradigm Introduction & Procedural Programming Sample Courseware Introduction to Software Paradigms & Procedural Programming Paradigm This Lesson introduces main terminology to be used in the whole course. Thus,

More information

Introduction to Software Engineering

Introduction to Software Engineering CS1Ah Lecture Note 7 Introduction to Software Engineering In this note we provide an overview of Software Engineering. The presentation in this lecture is intended to map out much of what we will study

More information

Masters in Information Technology

Masters in Information Technology Computer - Information Technology MSc & MPhil - 2015/6 - July 2015 Masters in Information Technology Programme Requirements Taught Element, and PG Diploma in Information Technology: 120 credits: IS5101

More information

應 用 測 試 於 軟 體 發 展 生 命 週 期. Testing In The Software Development Life Cycle

應 用 測 試 於 軟 體 發 展 生 命 週 期. Testing In The Software Development Life Cycle The Second Management Innovation and Practices Conference, Tamsui, Taiwan, April 2001,Volume 2, pp59-68 應 用 測 試 於 軟 體 發 展 生 命 週 期 Testing In The Software Development Life Cycle 蔡 博 元 莊 立 文 真 理 大 學 資 訊

More information

A Methodology for the Development of New Telecommunications Services

A Methodology for the Development of New Telecommunications Services A Methodology for the Development of New Telecommunications Services DIONISIS X. ADAMOPOULOS Centre for Communication Systems Research School of Elec. Eng., IT and Mathematics University of Surrey Guildford

More information

Process Methodology. Wegmans Deli Kiosk. for. Version 1.0. Prepared by DELI-cious Developers. Rochester Institute of Technology

Process Methodology. Wegmans Deli Kiosk. for. Version 1.0. Prepared by DELI-cious Developers. Rochester Institute of Technology Process Methodology for Wegmans Deli Kiosk Version 1.0 Prepared by DELI-cious Developers Rochester Institute of Technology September 15, 2013 1 Table of Contents 1. Process... 3 1.1 Choice... 3 1.2 Description...

More information

An Introduction to the ECSS Software Standards

An Introduction to the ECSS Software Standards An Introduction to the ECSS Software Standards Abstract This introduces the background, context, and rationale for the creation of the ECSS standards system presented in this course. Addresses the concept

More information

Functional Safety Management: As Easy As (SIL) 1, 2, 3

Functional Safety Management: As Easy As (SIL) 1, 2, 3 Functional Safety Management: As Easy As (SIL) 1, 2, 3 Abstract This paper outlines the need for planning in functional safety management. Recent events such as the Montara blowout and the Deepwater Horizon

More information

Procurement Programmes & Projects P3M3 v2.1 Self-Assessment Instructions and Questionnaire. P3M3 Project Management Self-Assessment

Procurement Programmes & Projects P3M3 v2.1 Self-Assessment Instructions and Questionnaire. P3M3 Project Management Self-Assessment Procurement Programmes & Projects P3M3 v2.1 Self-Assessment Instructions and Questionnaire P3M3 Project Management Self-Assessment Contents Introduction 3 User Guidance 4 P3M3 Self-Assessment Questionnaire

More information

SOFTWARE ENGINEERING IT 0301 Semester V B.Nithya,G.Lakshmi Priya Asst Professor SRM University, Kattankulathur

SOFTWARE ENGINEERING IT 0301 Semester V B.Nithya,G.Lakshmi Priya Asst Professor SRM University, Kattankulathur SOFTWARE ENGINEERING IT 0301 Semester V B.Nithya,G.Lakshmi Priya Asst Professor SRM University, Kattankulathur School of Computing, Department of IT 1 2 Process What is it? A series of predictable steps

More information

2. Analysis, Design and Implementation

2. Analysis, Design and Implementation 2. Subject/Topic/Focus: Software Production Process Summary: Software Crisis Software as a Product: From Individual Programs to Complete Application Systems Software Development: Goals, Tasks, Actors,

More information

Software development life cycle. Software Engineering - II ITNP92 - Object Oriented Software Design. Requirements. Requirements. Dr Andrea Bracciali

Software development life cycle. Software Engineering - II ITNP92 - Object Oriented Software Design. Requirements. Requirements. Dr Andrea Bracciali Software development life cycle Software life cycle: Software Engineering - II ITNP92 - Object Oriented Software Design Dr Andrea Bracciali Module Co-ordinator 4B86 abb@cs.stir.ac.uk Spring 2014 (elicitation)

More information

CHAPTER 1 INTRODUCTION

CHAPTER 1 INTRODUCTION CHAPTER 1 INTRODUCTION 1.1 Background This thesis describes a multi-agent based architecture for an intelligent assistant system for use in software project planning. The research explored the role of

More information

Development models. 1 Introduction. 2 Analyzing development models. R. Kuiper and E.J. Luit

Development models. 1 Introduction. 2 Analyzing development models. R. Kuiper and E.J. Luit Development models R. Kuiper and E.J. Luit 1 Introduction We reconsider the classical development models: the Waterfall Model [Bo76], the V-Model [Ro86], the Spiral Model [Bo88], together with the further

More information

Software Engineering/Courses Description Introduction to Software Engineering Credit Hours: 3 Prerequisite: 0306211(Computer Programming 2).

Software Engineering/Courses Description Introduction to Software Engineering Credit Hours: 3 Prerequisite: 0306211(Computer Programming 2). 0305203 0305280 0305301 0305302 Software Engineering/Courses Description Introduction to Software Engineering Prerequisite: 0306211(Computer Programming 2). This course introduces students to the problems

More information

Lecture 3 Software Development Processes

Lecture 3 Software Development Processes Lecture 3 Software Development Processes Software Engineering ITCS 3155 Fall 2008 Dr. Jamie Payton Department of Computer Science University of North Carolina at Charlotte September 2, 2008 Lecture Overview

More information

MEng, BSc Applied Computer Science

MEng, BSc Applied Computer Science School of Computing FACULTY OF ENGINEERING MEng, BSc Applied Computer Science Year 1 COMP1212 Computer Processor Effective programming depends on understanding not only how to give a machine instructions

More information

Meeting DO-178B Software Verification Guidelines with Coverity Integrity Center

Meeting DO-178B Software Verification Guidelines with Coverity Integrity Center Meeting DO-178B Software Verification Guidelines with Coverity Integrity Center May, 2009 Thomas Schultz Director of Product Strategy, Coverity, Inc. Executive Summary Development organizations that create

More information

Software development process

Software development process OpenStax-CNX module: m14619 1 Software development process Trung Hung VO This work is produced by OpenStax-CNX and licensed under the Creative Commons Attribution License 2.0 Abstract A software development

More information

The structured application of advanced logging techniques for SystemVerilog testbench debug and analysis. By Bindesh Patel and Amanda Hsiao.

The structured application of advanced logging techniques for SystemVerilog testbench debug and analysis. By Bindesh Patel and Amanda Hsiao. Logging makes sense for testbench debug The structured application of advanced logging techniques for SystemVerilog testbench debug and analysis. By Bindesh Patel and Amanda Hsiao. SystemVerilog provides

More information

TRADITIONAL VS MODERN SOFTWARE ENGINEERING MODELS: A REVIEW

TRADITIONAL VS MODERN SOFTWARE ENGINEERING MODELS: A REVIEW Year 2014, Vol. 1, issue 1, pp. 49-56 Available online at: http://journal.iecuniversity.com TRADITIONAL VS MODERN SOFTWARE ENGINEERING MODELS: A REVIEW Singh RANDEEP a*, Rathee AMIT b a* Department of

More information

Masters in Human Computer Interaction

Masters in Human Computer Interaction Masters in Human Computer Interaction Programme Requirements Taught Element, and PG Diploma in Human Computer Interaction: 120 credits: IS5101 CS5001 CS5040 CS5041 CS5042 or CS5044 up to 30 credits from

More information

Digital Industries Trailblazer Apprenticeship. Software Developer - Occupational Brief

Digital Industries Trailblazer Apprenticeship. Software Developer - Occupational Brief Digital Industries Trailblazer Apprenticeship Software Developer - Occupational Brief Table of Contents Contents 1 Software Developer Trailblazer Apprenticeship Introduction... 1 2 Software Developer Trailblazer

More information

Software Engineering for Software-Intensive Systems: III The Development Life Cycle

Software Engineering for Software-Intensive Systems: III The Development Life Cycle Software Engineering for Software-Intensive Systems: III The Development Life Cycle Assistant Professor Dr. Room E 3.165 Tel. 60-3321 Email: hg@upb.de Outline I Introduction II Foundations III The Development

More information

How To Develop Software

How To Develop Software Software Engineering Prof. N.L. Sarda Computer Science & Engineering Indian Institute of Technology, Bombay Lecture-4 Overview of Phases (Part - II) We studied the problem definition phase, with which

More information

Surveying and evaluating tools for managing processes for software intensive systems

Surveying and evaluating tools for managing processes for software intensive systems Master Thesis in Software Engineering 30 Credits, Advanced Level Surveying and evaluating tools for managing processes for software intensive systems Anuradha Suryadevara IDT Mälardalen University, ABB

More information

Structure of Presentation. The Role of Programming in Informatics Curricula. Concepts of Informatics 2. Concepts of Informatics 1

Structure of Presentation. The Role of Programming in Informatics Curricula. Concepts of Informatics 2. Concepts of Informatics 1 The Role of Programming in Informatics Curricula A. J. Cowling Department of Computer Science University of Sheffield Structure of Presentation Introduction The problem, and the key concepts. Dimensions

More information

What is ISO/IEC 15288? (A Concise Introduction)

What is ISO/IEC 15288? (A Concise Introduction) Dr. Harold "Bud" Lawson 2004-10-13 1 (10) What is ISO/IEC 15288? (A Concise Introduction) What if all or the majority of the people of an organization (independent of their personal background and role)

More information

Software Processes. Coherent sets of activities for specifying, designing, implementing and testing software systems

Software Processes. Coherent sets of activities for specifying, designing, implementing and testing software systems Questions What is the life cycle of a software product? Why do we need software process models? What are the goals of a software process and what makes it different from other industrial processes? Software

More information

How To Improve Software Quality

How To Improve Software Quality Software Quality and Standards Dr. James A. Bednar jbednar@inf.ed.ac.uk http://homepages.inf.ed.ac.uk/jbednar Dr. David Robertson dr@inf.ed.ac.uk http://www.inf.ed.ac.uk/ssp/members/dave.htm SEOC2 Spring

More information

Testing of safety-critical software some principles

Testing of safety-critical software some principles 1(60) Testing of safety-critical software some principles Emerging Trends in Software Testing: autumn 2012 Matti Vuori, Tampere University of Technology 27.11.2012 Contents 1/4 Topics of this lecture 6

More information

IEC 61508 Overview Report

IEC 61508 Overview Report IEC 61508 Overview Report A Summary of the IEC 61508 Standard for Functional Safety of Electrical/Electronic/Programmable Electronic Safety-Related Systems exida Sellersville, PA 18960, USA +1-215-453-1720

More information

Outline. III The Development Life Cycle. Characteristics of Software Development Methodologies. The Prototyping Process

Outline. III The Development Life Cycle. Characteristics of Software Development Methodologies. The Prototyping Process Software Engineering for Software-tensive Systems: Assistant Professor Dr. Room E 3.165 Tel. 60-3321 Email: hg@upb.de line I troduction II Foundations IV Requirements V Analysis & Design VI Implementation

More information

Managing Variability in Software Architectures 1 Felix Bachmann*

Managing Variability in Software Architectures 1 Felix Bachmann* Managing Variability in Software Architectures Felix Bachmann* Carnegie Bosch Institute Carnegie Mellon University Pittsburgh, Pa 523, USA fb@sei.cmu.edu Len Bass Software Engineering Institute Carnegie

More information

Software in safety critical systems

Software in safety critical systems Software in safety critical systems Software safety requirements Software safety integrity Budapest University of Technology and Economics Department of Measurement and Information Systems Definitions

More information

Fundamental Principles of Software Safety Assurance

Fundamental Principles of Software Safety Assurance Fundamental Principles of Software Safety Assurance Tim Kelly tim.kelly@york.ac.uk Context Lack of agreement in the details of requirements of software safety assurance standards has long been recognised

More information

Abstraction in Computer Science & Software Engineering: A Pedagogical Perspective

Abstraction in Computer Science & Software Engineering: A Pedagogical Perspective Orit Hazzan's Column Abstraction in Computer Science & Software Engineering: A Pedagogical Perspective This column is coauthored with Jeff Kramer, Department of Computing, Imperial College, London ABSTRACT

More information

Establishing Great Software Development Process(es) for Your Organization. By Dale Mayes DMayes@HomePortEngineering.com

Establishing Great Software Development Process(es) for Your Organization. By Dale Mayes DMayes@HomePortEngineering.com Establishing Great Software Development Process(es) for Your Organization By Dale Mayes DMayes@HomePortEngineering.com Class: ETP-410 Embedded Systems Conference San Francisco 2005 Abstract: There are

More information

Modelli di sviluppo software. Enrico Giunchiglia

Modelli di sviluppo software. Enrico Giunchiglia Modelli di sviluppo software Enrico Giunchiglia The software development process A structured set of activities required to develop a software system, including Specification Design & Development Validation

More information

The Software Process. The Unified Process (Cont.) The Unified Process (Cont.)

The Software Process. The Unified Process (Cont.) The Unified Process (Cont.) The Software Process Xiaojun Qi 1 The Unified Process Until recently, three of the most successful object-oriented methodologies were Booch smethod Jacobson s Objectory Rumbaugh s OMT (Object Modeling

More information

Reduce Medical Device Compliance Costs with Best Practices. mark.pitchford@ldra.com

Reduce Medical Device Compliance Costs with Best Practices. mark.pitchford@ldra.com Reduce Medical Device Compliance Costs with Best Practices mark.pitchford@ldra.com 1 Agenda Medical Software Certification How new is Critical Software Certification? What do we need to do? What Best Practises

More information

Quality System: Design Control Procedure - Appendix

Quality System: Design Control Procedure - Appendix Quality System: Design Control Procedure - Appendix Page 1 of 10 Quality System: Design Control Procedure - Appendix CORP Medical Products Various details have been removed, indicated by [ ] 1. Overview

More information

ISO/IEC 9126-1 Software Product Quality Model

ISO/IEC 9126-1 Software Product Quality Model Why do current systems fail? Standish Group found that 51% of projects failed 31% were partially successful Main causes were poor user requirements: 13.1% Incomplete requirements 12.4% Lack of user involvement

More information

Software Engineering from an Engineering Perspective: SWEBOK as a Study Object

Software Engineering from an Engineering Perspective: SWEBOK as a Study Object Software Engineering from an Engineering Perspective: SWEBOK as a Study Object Alain Abran a,b, Kenza Meridji b, Javier Dolado a a Universidad del País Vasco/Euskal Herriko Unibertsitatea b Ecole de technologie

More information

Improving Software Development Economics Part II: Reducing Software Product Complexity and Improving Software Processes

Improving Software Development Economics Part II: Reducing Software Product Complexity and Improving Software Processes Improving Software Development Economics Part II: Reducing Software Product Complexity and Improving Software Processes by Walker Royce Vice President and General Manager Strategic Services Rational Software

More information

Clinical Risk Management: Agile Development Implementation Guidance

Clinical Risk Management: Agile Development Implementation Guidance Document filename: Directorate / Programme Document Reference NPFIT-FNT-TO-TOCLNSA-1306.02 CRM Agile Development Implementation Guidance v1.0 Solution Design Standards and Assurance Project Clinical Risk

More information

VAIL-Plant Asset Integrity Management System. Software Development Process

VAIL-Plant Asset Integrity Management System. Software Development Process VAIL-Plant Asset Integrity Management System Software Development Process Document Number: VAIL/SDP/2008/008 Engineering For a Safer World P u b l i c Approved by : Ijaz Ul Karim Rao Revision: 0 Page:2-of-15

More information

Family Evaluation Framework overview & introduction

Family Evaluation Framework overview & introduction A Family Evaluation Framework overview & introduction P B Frank van der Linden O Partner: Philips Medical Systems Veenpluis 4-6 5684 PC Best, the Netherlands Date: 29 August, 2005 Number: PH-0503-01 Version:

More information

Acknowledgement. Software Engineering. CS 3141: Team Software Project Introduction

Acknowledgement. Software Engineering. CS 3141: Team Software Project Introduction CS 3141: Team Software Project Introduction Ali Ebnenasir Department of Computer Science Michigan Technological University Acknowledgement Betty H.C. Cheng Software Engineering Systematic approach for

More information

CS4507 Advanced Software Engineering

CS4507 Advanced Software Engineering CS4507 Advanced Software Engineering Lectures 2 & 3: Software Development Lifecycle Models A O Riordan, 2015 Some diagrams from Sommerville, some notes from Maciaszek/Liong Lifecycle Model Software development

More information

Software Engineering. Objectives. Designing, building and maintaining large software systems

Software Engineering. Objectives. Designing, building and maintaining large software systems Software Engineering Objectives Designing, building and maintaining large software systems To define software engineering and explain its importance To discuss the concepts of software products and software

More information

Certified Software Quality Engineer (CSQE) Body of Knowledge

Certified Software Quality Engineer (CSQE) Body of Knowledge Certified Software Quality Engineer (CSQE) Body of Knowledge The topics in this Body of Knowledge include additional detail in the form of subtext explanations and the cognitive level at which the questions

More information

Design of automatic testing tool for railway signalling systems software safety assessment

Design of automatic testing tool for railway signalling systems software safety assessment Risk Analysis VI 513 Design of automatic testing tool for railway signalling systems software safety assessment J.-G. Hwang 1, H.-J. Jo 1 & H.-S. Kim 2 1 Train Control Research Team, Korea Railroad Research

More information

Development of AUTOSAR Software Components within Model-Based Design

Development of AUTOSAR Software Components within Model-Based Design 2008-01-0383 Development of AUTOSAR Software Components within Model-Based Design Copyright 2008 The MathWorks, Inc. Guido Sandmann Automotive Marketing Manager, EMEA The MathWorks Richard Thompson Senior

More information

CS 1632 SOFTWARE QUALITY ASSURANCE. 2 Marks. Sample Questions and Answers

CS 1632 SOFTWARE QUALITY ASSURANCE. 2 Marks. Sample Questions and Answers CS 1632 SOFTWARE QUALITY ASSURANCE 2 Marks Sample Questions and Answers 1. Define quality. Quality is the degree of goodness of a product or service or perceived by the customer. Quality concept is the

More information

Reusable Knowledge-based Components for Building Software. Applications: A Knowledge Modelling Approach

Reusable Knowledge-based Components for Building Software. Applications: A Knowledge Modelling Approach Reusable Knowledge-based Components for Building Software Applications: A Knowledge Modelling Approach Martin Molina, Jose L. Sierra, Jose Cuena Department of Artificial Intelligence, Technical University

More information

11 Tips to make the requirements definition process more effective and results more usable

11 Tips to make the requirements definition process more effective and results more usable 1 11 Tips to make the s definition process more effective and results more usable This article discusses what I believe are the key techniques for making s definition process repeatable from project to

More information