200 likes | 309 Views
Learn about the design and implementation phases of a system, including logical and physical design elements, software development, testing strategies, and implementation alternatives. This guide covers detailed specifications, construction and testing processes, and maintenance considerations during the system lifecycle.
E N D
Design, Implementation and Maintenance • The “lower end” of the lifecycle focuses on • Detailed logical and technical specification of the system or system changes (Design) • The acquisition of hardware and the creation of software (Construction) • Getting the new system in the hands of its intended users with minimal business disruption (Implementation) • Maintaining the effectiveness of the solution as the business evolves (Maintenance)
System Design • Usual divided into Logical and Physical • Logical Design • A detailed conceptualization of “what” the system must do • These are the functional requirements of the system • Logical design differences from requirements analysis in level of detail and specificity
System Design Elements • Output design • Reports • Files, transactions • Input design • Screens • Input transactions or files • Processing design • What are the major processing logic and algorithms to be used? • Database and file design • Create the database schema • Define key non-database files
System Design Elements (Con’t) • High level physical design • Telecommunications • What are the detailed network and telecom requirements? • Operations • To run the system, what operational procedures must be put in place? • Control and security • What controls will be required to maintain the security and integrity of the system? • Test Design • A preliminary test plan must be created
Physical Design • Specification of the system components necessary to implement the logical design • Elements • Hardware • If new hardware is required, this is the place to specify it • What is the system load going to be and is the existing hardware adequate? • What are the storage requirements? • Will new networking equipment be required?
Physical Design Elements (Con’t) • Software Design • Identification of individual programs or program modifications • Design of programs • Specification of inputs and outputs • Specification of critical logical components • Test Design • This is the point where the testing plan must be finalized
Physical Design Elements (Con’t) • Database Design • The detailed specification of the database and any files is done here • Telecommunication Design • Detailed specifications done • Sufficient to procure hardware or contract work • Security and control • Detailed specifications done
Design Phase Checkpoints • Logical and physical designs should be reviewed carefully by all team members • Walkthroughs and reviews of each subsystem • Important for quality and to ensure design consistency • Management Checkpoint • A management checkpoint is critical • Should review all aspects, including cost, ROI and schedule
Construction and Test • Software is written or purchased • Hardware is purchased • All individual components of system are tested • Integrated system is tested • Detailed implementation plans are created and tested • Training takes place
Software Development • Structured Design • A body of learning about what constitutes good programs • Maintainable • Error free • Heuristics • Modular • Clearly defined module inputs and outputs, entry and exit points • The opposite of spaghetti
Software Development (Con’t) • Structured programming • Specific techniques regarding naming, use of certain programming constructs • Consistent with structured design • Integrated Development Environments (IDE) • Can significantly improve productivity • Use of program walkthroughs • Peer or senior programmer does detailed examination of code • Less expensive way to find errors than testing
Software Development (Con’t) • Chief programmer teams • Teams organized around a senior programmer or architect • Team includes • Junior programmers • Librarian • Testing specialists • Documentation and training specialists
Testing • Must proceed logically from small units to large units • Individual programs • Subsystems comprised of groups of programs • Complete system • Implementation testing • Stress or load testing
Testing (Con’t) • Testing must be designed based upon test criteria • Test data • Must be constructed which will produce all possible outcomes • Must ensure that all program paths are exercised • Expected results must be documented • And obviously compared with actual • Testing automation tools exist
Implementation • How do I get all of this installed and running? • Elements • Training people • Converting data from old system to new • Installing hardware • Installing software • Go/No go implementation test • Where do we hit a point of no return?
Implementation Alternatives • If system is an addition to existing environment, implementation should be simple • If system replaces an existing system • Big bang approach • Quick, less expensive, more dangerous • Phase in by module • Phase in by part of business
Maintenance • Maintenance is the “base of the iceberg” • Often, the cost of maintaining a system is 5 times the cost of original acquisition • Impact of design on maintenance • Well designed and well structured systems are much easier to maintain • This means that additional investments during design and construction will yield big benefits during maintenance • “You can pay me now or you can pay me later”
Maintenance (Con’t) • Maintenance processes should be managed much like new development • Maintenance authorization should be management decision • Use of SR/MR process • Categorization of request • Bug fix (level of severity) • Enhancement • Externally required • Estimated effort and cost
Maintenance (Con’t) • Maintenance should follow a methodology like new development • Requirements analysis • Design • Code review • Test plan and testing • Implementation plan • This should be scaled to the size of the maintenance • System documentation should be maintained as well