Академический Документы
Профессиональный Документы
Культура Документы
Tech(CSE) I-Sem
UNIT II PROCESS MODELS Prescriptive Process Models: Definition: * It is a distinct set of activities, actions, tasks, milestones and work products that are required to engineer high quality software *These process models are not perfect but they provide a useful roadmap for software engineering work * Help in the software development * Guide the software team through a set of framework activities * Process Models may be linear, incremental or evolutionary The Water Fall Model: * It is sometimes called the classic life cycle * It suggests a systematic, sequential approach to software development that begins with customer specification of requirements and progress through => Communication => Planning => Modeling => Construction and => Deployment * Used when requirements are well understood in the beginning * Also called classic life cycle model * A systematic, sequential approach to Software development * Begins with customer specification of Requirements and progresses through planning, modeling, construction and deployment * This Model suggests a systematic, sequential approach to SW development that begins at the system level and progresses through analysis, design, code and testing
R.G.Kumar/Asst.,Prof/CSE/SIETK
Page 1
R.G.Kumar/Asst.,Prof/CSE/SIETK
Page 2
60 90 days
R.G.Kumar/Asst.,Prof/CSE/SIETK Page 3
Steps in Prototyping Begins with requirement gathering Identify whatever requirements are known Outline areas where further definition is mandatory A quick design occur Quick design leads to the construction of prototype Prototype is evaluated by the customer Requirements are refined Prototype is turned to satisfy the needs of customer Limitation of Prototyping In a rush to get it working Overall software quality or long term maintainability are generally overlooked Use of inappropriate OS or PL Use of inefficient algorithm (2) Spiral Model An evolutionary model which combines the best feature of the classical life cycle and the iterative nature of prototype model Include new element : Risk element Starts in middle and continually visits the basic tasks of communication, planning, modeling, construction and deployment
R.G.Kumar/Asst.,Prof/CSE/SIETK
Page 5
Two main features A cyclic approach for incrementally growing a systems degree of definition and implementation while decreasing its degree of risk An anchor point mile stones for ensuring stake holders commitment to feasible and mutually satisfactory system solutions Main idea: Realistic approach to the development of large scale system and software Software evolves as process progresses Better understanding between developer and customer The first circuit might result in the development of a product specification Subsequent circuits develop a prototype And sophisticated version of software Advantages: It is a realistic approach to the development of large-scale system and software It enables the developer to apply the prototyping approach at any stage in th evolution of the product It maintains the systematic stepwise approach suggested by classic life cycle and incorporates it into iterative framework
R.G.Kumar/Asst.,Prof/CSE/SIETK Page 6
* At any given time the modeling activity may be in any one of the states * All activities exist concurrently, but reside in different states Ex: * Initially in a project, the communication activity has completed its first iteration and exists in awaiting change state * When initial communication was completed, the modeling activity exists in none state, makes a transition from none state into the under development state * If customer indicates changes in requirements, the modeling activity moves from under development into awaiting change state * A series of events will trigger transition from state to state for each of the software engineering activities, actions (Or) tasks * During early stages of design [a software engineering action that occurs during the modeling activity] an inconsistency in the analysis model will trigger the analysis action from the done state into the awaiting change state Advantages: (1) The concurrent process model provides an accurate picture of the current state of a project (2) It defines the software engineering activities, actions and tasks as a network, instead of sequence of events (3) Each activity, action (Or) tasks on network exists simultaneously with other activities
R.G.Kumar/Asst.,Prof/CSE/SIETK Page 7
Phases of the Unified Process: (1) Inception Phase: * This phase combines both customer communication and planning activities * By combining these the => Business requirements for the software are identified => A rough architecture for the system is proposed => A plan for the iterative, incremental nature of the ensuring project is developed * In general a use-case describes a sequence of actions that are performed by an actor [e.g. a person, a machine] * Use-case helps to identify the scope of the project and provide a basis for project planning (2) Elaboration Phase: * It refines and expands the preliminary use-cases that were developed on inception phase * It expands the architectural representation to include five different views of the software: => Use-case model => Analysis Model => Design Model => Implementation Model => Deployment Model * The modification to the plan may be made at this time
R.G.Kumar/Asst.,Prof/CSE/SIETK Page 8
Crosscutting Concerns Crosscutting Concerns are those system concerns which take effect over multiple artifacts within a design or program. Artifact = any tangible object at any level of the software development process. Concern = system property Functional property Constraint of system behavior Constraints on a system refer to conditions that need to be satisfied when the system runs Logging of read/write operations on all pumps Authorization Synchronization 2. Aspectual Decomposition To modularize the crosscutting concerns, software developers need a different decomposition technique. Modules in contemporary programming languages and paradigms are all based on some form of functional (de)composition (e.g. subroutines, functions, objects, components). Aspects An aspect is a module that can localize the implementation of a crosscutting concern. In the context of AOSD, Aspects are a new modularity mechanism with which crosscutting concerns can be expressed. An aspect holds all the information (operations and data) that a crosscutting concern uses/manipulates. An aspect is bound to a context. Better modularity. Crosscutting concerns are now localized in an aspect.
R.G.Kumar/Asst.,Prof/CSE/SIETK
Page 10
3. Binding Model (Modularization) Separating the operations and data which a crosscutting concern deals with is the first step: aspectual data type. One needs to define at which points within your design implementation an aspect gets to execute its code. Binding of an aspect. A join point model provides the glue between aspectual data types and the binding of them. 4. Weavers Aspect languages rely on a specific kind of compilers (or interpreters), called weavers that compose the aspects implementation with the other modules. Compilers for aspect languages are called weavers because they need to weave the aspect code into the modules that are crosscut by the aspect. Some weavers use source code or byte code transformation to achieve this (e.g. AspectJ), while other weavers use reflection to achieve the same result (e.g. AspectS). General Steps to perform AOSD 1. Aspect-oriented Requirements Engineering 2. Aspect-oriented Architecture 3. Aspect-oriented Design 4. Aspect-oriented Programming 5. Verification of Aspect-oriented Programs 6. Aspect-oriented Middleware
R.G.Kumar/Asst.,Prof/CSE/SIETK Page 11
(ASSIGNMENT TOPIC)
R.G.Kumar/Asst.,Prof/CSE/SIETK
Page 12