Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
by
Fleming Woo
Outline
The
need for a framework Overview of the proposed framework Research methods Reuse, productivity and quality Formulation of the proposed framework Validation of the framework Implementation of the framework Reference to other frameworks
Introduction
Amounts
of software requests are huge Software development is the most complex endeavour ever undertaken by human beings Different approaches of software development evolved over the past 40 years
Procedure-oriented
Introduction
Object-oriented
approach has been cited in many researches as having clear advantages over the traditional methods:
More
traceable to system requirements Better transition between requirement analysis and design More resilient to system changes More reusable components More stable resulting systems
Introduction
From
a survey in this study, 42.7% of organizations claimed to have adopted OOMs to some extent Problem of the slow adoption rate should be thoroughly investigated A framework is required to facilitate businesses to select and adopt the most suitable methodology for their specific environment
development time Keep up with current technology Improve maintenance Consistent with prior project Best choice for user interface Build reuse library
factors:
factors:
never considered OOMs Lack of training in OOMs Economically infeasible Satisfied with existing methods
Fourth Generation Languages (4GL) Computer-aided Software Engineering (CASE) Structured Systems Development Methodologies (SSDM) Object-oriented Methodologies (OOMs) Unified Modelling Language (UML) Formal Methods Personal Software Process (PSP) Extreme Programming Component Programming, Relational Database Management Systems (RDBMS) Object-oriented Database Management Systems (ODBMS)
s evt c epsr e P i
Methodologies
Research Methods
Literature Review
Many
BON, FOOM, Fusion, HOOD, Meyer, Moses, Ooram, ROOM, Syntropy, SOMA, Demeter, etc.
Reuse
Efficiency
Efficiency
Effectiveness
Effectiveness
is the external performance view focusing on the outcomes of the software development process
quality
Research Methods
Analysis
previous survey data Critical analysis of current situation Derive a framework for the effective selection and adoption of systems development methodologies Validate the framework:
Comparison
with well recognized frameworks New round of survey Proof of cause-and-effect hypotheses In-depth interviews and case studies Longitudinal analysis of two rounds of survey
Software reuse
Reuse
should be systematic rather than ad-hoc opportunistic Some issues in reuse are well known:
high integration cost unclear ownership recognitions of authorship productivity measurement extra effort to develop new components
Tools
and procedures are required to certify, search and update reusable components Early establishment of strategies for reuse is important to business organizations
Backup / Recovery / Security Database Management Communication Functional Logic eD ev l po User Interface em tn Software Package Domain Knowledge Scenario / Framework Pattern / Template
yT ep s
es ue R er a wf o S t
Object Class Service / Method / Function / Routine Data Attribute Analysis Design Implementation
Development Stages
Productivity
Ruse
has positive contribution to the enhancement of productivity over the entire SDLC Productivity is significantly enhanced with the use of software development and automation tools OOM does not enhance productivity significantly and directly due to staff training needs and efforts Adoption of mixed methods customized to the background of staff are more productive Support of senior management alone will enhance motivations and hence productivity Survey findings indicated the business need for:
properly formulated strategies well selected methodology appropriately managed adoption process
Software Quality
Significant
trade-off exists between quality and productivity but organizations often put quality at a higher priority than productivity Measurement of quality is a political issue Modular, open and layered architecture, a natural consequence of adopting OOMs, improve quality Carefully devised framework for the adoption of software development methodologies is essential Support of senior management alone will enhance motivations and hence software quality Well-defined strategies and quality objectives contributes to quality improvement
Not using any methodology Using process-oriented methods Using data oriented methods Using object oriented methods Using in-house customized methods
and professional development are important to organizations both before and after the adoption The adoption decision should be communicated to every developer at all levels Adoption should be treated as a continuous process
framework can be described in a set of cause-and-effect hypotheses which have some degrees of uncertainties The validity of these hypotheses are testable and verifiable
Methodology
Solutions Methods
External Users
Terminology
Productivity
Implementation
Jobs
Design
Documentation Analysis
Evaluation
Reuse
User Interface Functional Logic
Deliver Products
Data Management
Communication
Components of a Methodology
Tools
- software package supporting systems development Techniques ways and skills to transform information into forms useful to the development of a system project Method the process of systems development
Routinizing
Industry perspective:
Known
Organization perspective
Quality
objectives Best-in-class systems Cost-effective production Efficient use of resources Gaps in skill inventory Reuse strategy Support for reuse
Project perspective
Accurate
system requirements Correct system specification User-friendly system interface Repeatable processes Reduced uncertainties Responsive to changes Traceable system events Improved project manageability Adoption of a well-chosen methodology Reuse from prior projects Reuse for subsequent projects
Product perspective
Reduced
Developer perspective
Technical
competence Cross functional skills Domain knowledge Adaptable to changes Ability to learn Communications skills Team work skills
s evt c epsr e P i
Methodologies
s evt c epsr e P i
Ad
op
Methodologies
s evt c epsr e P i
Ad
Available methods/processes
op
Methodologies
s evt c epsr e P i
Methodologies
s evt c epsr e P i
Ad
op
Methodologies
s evt c epsr e P i
Ad
op
Methodologies
Methodologies
An example hypotheses
The existence of industry standards and competence of developer in systems development methodology, are important considerations in the adoption of a methodology, will also contribute to fulfil the business goal of making profits. If we can deploy suitable tools, the number of defect density in the system deliverables will be decreased that contributes to the favourable consideration in adopting a particular methodology. The deployment of software development tools will also enhance the user interface of the final software product and increase developers productivity, which is in turn a good reason for choosing a methodology. Developer productivity may be decreased due to the sophistication of user interface. Reusing software components, although may negatively affect the developers satisfaction in the development process, will increase development productivity and is an important factor for the adoption of a methodology.
An Implementation Framework
Organization
strategies Organization policies Strategic sourcing and support Professional development Systems development
An Implementation Framework
Scorecard (BSC) Information Technology Infrastructure Library (ITIL) Strategic Options Development and Analysis (SODA) Capability Maturity Model (CMM) Service Oriented Architecture (SOA)
Thank You