150 likes | 285 Views
develop standards. for: system modeling - UML conventions, etc. code/programming - language constructs, code layout, etc. human-computer interface - navigation, layout, etc. device interfaces - polymorphism, etc. subsystem interfaces and layer interfaces
E N D
develop standards • for: • system modeling - UML conventions, etc. • code/programming - language constructs, code layout, etc. • human-computer interface - navigation, layout, etc. • device interfaces - polymorphism, etc. • subsystem interfaces and layer interfaces • construction - component naming, component storage, etc. • in order to: • increase team productivity • improve system maintainability • increase portability • and...
tradeoffs • system performance efficiency • maintainability • cost • you can only have two of • good - fast - cheap • how do you know your product or process is good?
product quality correctness reliability product efficiency operations integrity software usability product portability product quality reusability transition factors interoperability maintainability product testability revision flexibility [J. McCall, P. Reynolds and G. Walters. Factors in Software Quality. NTIS AD-A049-014/015/055. November 1977]
standards IEEE - several standards e.g. #830 Guide to Software Requirements Specification e.g.#1074 Software Lifecycle Object Management Group’s (OMG) Common Object Request Broker Architecture (CORBA) ISO 9001 Standard for software Development International Consultative Committee on Telephony and Telegraphy (CCITT) American National Standards Institute (ANSI) Canadian Standards Association (CSA) Software Engineering Institute (SEI) and others
suitability accuracy ISO 9126 functionality interoperability security maturity fault tolerance reliability recoverability understandability learnability ISO 9126 usability operability quality attractiveness characteristics for software time behaviour efficiency products resource utilization analyzability changeability maintainability stability testability adaptability installability portability co-existence replacability
the basic quality improvement process model build quality measurement devices (re)define quality fix problems, refine processes measure quality, analyze results
all are influenced by people and all are part of the project five key expectations predetermine quantitative quality goals accumulate data for use in subsequent projects used for process development keep all work visible • design only against requirements • program only against design • test only against requirements and design aspect of the product measure and achieve quality goals
the project team project manager business analyst systems analyst/designer database administrator programmer quality control support/help desk technical systems administrator network administrator network architect etc. client (funding) user management users auditors security specialists lawyers customers etc.
project staff consolidated G/L project A/P and A/R maintenance work order system replacement corporate data model project Andy the financial analyst interface to A/P as needed billing weekly meetings Jane the programmer n/a as needed lead programmer n/a Bill from Help Desk error message design as needed on testing team n/a IT manager status meetings change control committee project manager weekly meetings John the technical writer user manual n/a user manual charts and diagrams matrix organization, and example
SQA activities in IT • application of technical methods • formal technical review • software testing • enforcement of standards • control of change • measurement • record keeping and reporting
Capability Maturity Model -Integration (CMMI) • The organizational process assets that are described in CMMI models include the following: • organization’s set of standard processes, including the • process architectures and process elements • descriptions of life-cycle models approved for use • guidelines and criteria for tailoring the organization’s set • of standard processes • organization’s measurement repository • organization’s process asset library • organization’s performance baselines
Initial level Add: Requirements management Software project planning Software project tracking and oversight Software subcontract management Software quality assurance Software configuration management maturity of IT departments Repeatable level Add: Organization process focus Organization process definition Training program Integrated software management Software product engineering Inter-group coordination Peer reviews
Defined level Add: Quantitative process management Software quality management maturity of IT departments Managed level Add: Defect prevention Technology change management Process change management Optimizing level
and at the personal level... SEI’s Personal Software Process (PSP) baseline personal process personal planning personal quality management cyclic personal process • understand current process • record your time and task sizes • record and analyze defects • define coding standards • develop improvement proposal • task and schedule planning • size and time estimating • test reporting • code reviews • design reviews • design templates • cyclic development