Experiences with certification of reusable components in the GSN project in Ericsson, Norway Parastoo Mohagheghi and Reidar Conradi Dept. Computer and.

Slides:



Advertisements
Similar presentations
Object-Oriented Application Frameworks Much of the cost and effort stems from the continuous re- discovery and re-invention of core concepts and components.
Advertisements

Component-Based Software Engineering Main issues: assemble systems out of (reusable) components compatibility of components.
Sixteen Questions About Software Reuse William B. Frakes and Christopher J. Fox Communications of the ACM.
Main issues: • Why is reuse so difficult • How to realize reuse
Enterprise Architecture 2013 ITLC & ITAG Leadership Meeting Discussion Points April 9, 2013.
Populating Software Repositories Incentives and Domain-Specific Software Jeffrey S. Poulin Journal of Systems and Software, 1995:30, p
CLEANROOM SOFTWARE ENGINEERING
1 Parastoo Mohagheghi- 21 Sept.2004 The Impact of Software Reuse and Incremental Development on the Quality of Large Systems Parastoo Mohagheghi Dept.
July 11 th, 2005 Software Engineering with Reusable Components RiSE’s Seminars Sametinger’s book :: Chapters 16, 17 and 18 Fred Durão.
Why don’t we practice what we teach? Andre Oboler, David McG. Squire and Kevin B. Korb School of Computer Science and Software Engineering, Monash University,
Requirements Analysis INCOSE Systems Engineering Boot Camp
Object-Oriented Software Engineering Practical Software Development using UML and Java Chapter 3: Basing Software Development on Reusable Technology.
Building software from reusable components.
An Approach to Case Analysis
Planning. SDLC Planning Analysis Design Implementation.
Software Product Lines Krishna Anusha, Eturi. Introduction: A software product line is a set of software systems developed by a company that share a common.
Software Product Line Architectures (SPLA) Nipun Shah
Computer Systems & Architecture Lesson Software Product Lines.
Software Evolution Planning CIS 376 Bruce R. Maxim UM-Dearborn.
Factors influencing open source software adoption
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 18 Slide 1 Software Reuse 2.
©Ian Sommerville 2006Software Engineering, 8th edition. Chapter 18 Slide 1 Software Reuse.
Software Engineering Muhammad Fahad Khan
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 18 Slide 1 Software Reuse.
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 14Slide 1 Design with Reuse l Building software from reusable components.
CSI315 Web Applications and Technology Overview of Systems Development (342)
Software Engineering Reuse.
Chapter 2 The process Process, Methods, and Tools
ISO Tor Stålhane IDI / NTNU. What is ISO ISO 9001 was developed for the production industry but has a rather general structure ISO describes.
CLEANROOM SOFTWARE ENGINEERING.
Institut Experimentelles Software Engineering Fraunhofer IESE Klaus Schmid Relating Product Line Adoption Mode and Transition Process.
18 September Licensing for Next Generation Signalling Buddhadev Dutta Chowdhury 27 th April 2012.
CSE 303 – Software Design and Architecture
Assessing the SoP of MBE in the Embedded Systems Domain Xubo Miao MSc, School of Computing Supervisor: James R. Cordy.
©Ian Sommerville 2000 Software Engineering, 6th edition. Slide 1 Component-based development l Building software from reusable components l Objectives.
Chapter 2 소프트웨어공학 Software Engineering 임현승 강원대학교
©Ian Sommerville 2000, Mejia-Alvarez 2009 Slide 1 Software Processes l Coherent sets of activities for specifying, designing, implementing and testing.
Teaching material for a course in Software Project Management & Software Engineering – part II.
Conceptual Framework For Financial Reporting
 CS 5380 Software Engineering Chapter 2 – Software Processes Chapter 2 Software Processes1.
SOFTWARE REUSABILITY AJAYINDER SINGH CSC What is Software Reuse Software reuse is the process of implementing or updating software systems using.
Introduction To Software Component Reuse
Intent Specification Intent Specification is used in SpecTRM
Decision making, FUIEMS, 29 December, Decision-Making Process Engineering Economics Lecture # 15.
Architectural Design lecture 10. Topics covered Architectural design decisions System organisation Control styles Reference architectures.
1 Requirements Management - General concepts - Noureddine Abbadeni King Saud University College of Computer and Information Sciences Based on “Software.
Content The system development life cycle
21-22 May 2004IMPROQ 2004 / Impact of SW Processes on Quality Workshop 1 Quality for Components: Component and Component- Based Software Quality Issues.
ISO 9001 – an overview Tor Stålhane IDI / NTNU. ISO 9001 and software development ISO 9001 is a general standard – equally applicable to software development.
Rational Unified Process Fundamentals Module 5: Implementing RUP.
Historical Aspects Origin of software engineering –NATO study group coined the term in 1967 Software crisis –Low quality, schedule delay, and cost overrun.
The System and Software Development Process Instructor: Dr. Hany H. Ammar Dept. of Computer Science and Electrical Engineering, WVU.
Software Product Line Material based on slides and chapter by Linda M. Northrop, SEI.
Enabling Reuse-Based Software Development of Large-Scale Systems IEEE Transactions on Software Engineering, Volume 31, Issue 6, June 2005 Richard W. Selby,
FDT Foil no 1 On Methodology from Domain to System Descriptions by Rolv Bræk NTNU Workshop on Philosophy and Applicablitiy of Formal Languages Geneve 15.
McGraw-Hill/Irwin© 2005 The McGraw-Hill Companies, Inc. All rights reserved. 7-1 Chapter Rewarding Organizational Behavior.
1 / x CMMI Technical Solution Rob Vanden Meersche Dieter Van den Bulcke.
Rational Unified Process (RUP)
Sixteen Questions About Software Reuse William B. Frakes and Christopher J. Fox Communications of the ACM.
1 The Requirements Problem Chapter 1. 2 Standish Group Research Research paper at:  php (1994)
Unit 15 Concept Developing and Testing Components of A.T.A.R. Model (A – Awareness, T – Trial, A – Availability, and R – Repeat Purchase  Buying unit.
Banaras Hindu University. A Course on Software Reuse by Design Patterns and Frameworks.
Why is Design so Difficult? Analysis: Focuses on the application domain Design: Focuses on the solution domain –The solution domain is changing very rapidly.
A Method for Improving Code Reuse System Prasanthi.S.
Object oriented system development life cycle
Software Life Cycle Models
Introduction to Software Engineering
in Construction Industry
CSSSPEC6 SOFTWARE DEVELOPMENT WITH QUALITY ASSURANCE
Component-Based Software Engineering
Presentation transcript:

Experiences with certification of reusable components in the GSN project in Ericsson, Norway Parastoo Mohagheghi and Reidar Conradi Dept. Computer and Information Science NTNU

Introduction INCO project –University of Oslo, NTNU, Ericsson Quality issues of COTS are not addressed by incremental process Discuss methods for reusable component development and certification in GSN project at Ericsson in Grimstad

The local setting at Ericsson The world´s leading suppliers of third generation mobile systems Build robust, highly available systems for real- time applications, such as GPRS and UMTS GSN ( GPRS Support Node) project: –Develop compoents reusable by applications –Define a common software arhcitecture –Define an overall reuse process

GSN application architecture Application-specific layer Business-specific layer Middleware layer System layer Common parts

The reusable artifacts Software architecture –A layered architecture, its generic components and guildlines –Reusable components in the business-specific or middleware layer –Design patterns and more specific guildlines Common process, based on adaption of RUP and including considerations about quality issues

Development of the architecture (1) Originally for a specific GPRS application Later used to develop architectural patterns and guidelines reusable for both GPRS and UMTS applications The architecture should fulfil all the requirements including functional requirements and non- functional requirements (quality requirements)

Development of the architecture (2) Top-down approach –Identify the building blocks of the architecture Bottom-up approach –A later recognition of shared requirements –Identify reusable parts A joint development effort across projects,teams, and organizations

Verify reuse of the architecture How well can the architecture and components for a specific product meet the requirements for other products? –The degree the shared requirements are satisfied How well are the architecture and components documented? How much information is available on interfaces and internal implementations?

Certification of reusable architecture All components should be certified by inspections and unit testing. When the components are integrated, integration testing and target testing are done. Quality requirements –Some quality requirements can be converted to a use case –Traffic model, measuring the behavior, simulation and target tesing, like performance and availability

Developing reusable components The current process –How generic this components will be Application-specific layer Business-specific layer Middleware layer –If the component is recognised reusable Identify the degree of reusability Identify the cost to make it reusable –Develop a verification plan for all the steps like inspection, prototyping, unit testing, system testing and extra test cases for reuse

Future issues Improve the process for breaking down quality requirements Improve the development process to capture these requirements in the model and specifications Improve certification of quality requiremets.

Q5: Does perceived economic feasibility influence reuse? Reuse may not be done if it is not believed to be economically feasible. Levels of code reuse is compared with respondents agreement with the statement: “Reuse is economically feasible in my organization”. Clear trend towards higher reuse as belief in economic feasibility increases Conclusion: –perceived economic feasibility influences reuse –important to convince software engineers about the economic feasibility of reuse

Q6: Does reuse education influence reuse? Comparing education about software reuse (at school) with individual levels of reuse shows that education on reuse does affect code and design reuse Comparing education about software reuse (at work) with organizational reuse levels of lifecycle objects shows that education at work does affect reuse Conclusion: –Education in school and at work improves reuse and is a necessary part of a reuse program

Q7: Does software engineering experience influence reuse? General assumption that experienced software engineers are better practitioners The survey shows no significant correlations between engineering experience and personal level of reuse. Conclusion: –Software engineering experience has no effect on reuse of lifecycle objects –Maybe caused by historical lack of training in reuse

Q8: Do recognition rewards increase reuse? Reuse incentives are considered to be necessary catalysts for reuse. –recognition rewards and cash rewards Respondents say that rewards are rare –no cash bonuses –only a few with other recognition Comparing levels of organizational code reuse between the two groups ”rec. rewards” and ”no rewards” show no significant differences Similar findings for individual reuse The findings contradict the common belief that recognition is a sufficient reward for reuse. It may be that only monetary rewards are sufficient rewards

Q9: Does a common software process promote reuse? Statement used in the survey: –“A common development process has promoted reuse across projects in our organization.” Respondents generally do not agree on it. This might mean: –no defined common process –the process has failed to support reuse The correlations between the degree of agreement with the statement and the organizational reuse shows –moderate correlation for designs, test plans, and test cases –weak correlations for requirements, code, and user documentation Conclusion –A defined software process that promotes reuse does affect software reuse levels

Q10: Do legal problems inhibit reuse? Legal issues e.g.. regarding contracting, ownership are still unresolved and are thought to be a serious impediment to reuse The statement: –I am inhibited by possible legal problems. Most respondents (68%) report that legal problems do not appear to be an impediment Conclusion: –No significant correlation between levels of reuse and reported inhibition by legal problems.

Q11: Does having a reuse repository improve code reuse A reuse repository is a searchable collection of reusable assets. Slightly higher median for reuse levels for organizations with a repository Not statistically significant Conclusion –Having a reuse repository does not improve reuse –A repository should not be the focus for organizations trying to improve systematic reuse

Q12: Is reuse more common in certain industries? Respondents were asked to classify their company or business Significant differences in reuse between different industries –higher level for telecommunication –lower level for aerospace industries Reasons not currently known Industries with low reuse might benefit from studying and adopting reuse practice in industries that lead in software reuse

Q13: Are company, project sizes predictive of organizational reuse? Small organizations: –Is systematic reuse a realistic goal given the the scope of their domain and limited resources? Large organizations: –Introducing systematic reuse may be unrealistic because of the large investment and time required No significant correlation were found between organizational size and reuse levels Conclusion: –Company and project size are not predictive of reuse levels –Organizations of any size may succeed to introduce systematic reuse

Q14: Are quality concerns inhibiting reuse? It is commonly thought software engineers distrust assets developed outside and thus are less likely to reuse them. No correlation between: –”software developed elsewhere meets our standards” –”what percentage of the parts you reuse are form external sources” Experience in quality of reusable software have generally been favourable (69% agreement) No correlation between personal reuse level and experience in quality of external software Conclusion –Satisfaction with quality does not influence reuse levels –Does NOT mean that quality is unimportant

Q15: Are organizations measuring reuse, quality, and productivity? Measuring reuse is important to determine success of the reuse program Few organizations are currently measuring reuse (at most 25%) Quality is more widely measured (42%) Productivity measurement is relatively rare (32%) Conclusion: –Many organizations do not measure reuse levels, quality, and productivity –These organizations cannot properly manage their software processes and products, including reuse

Q16: Does reuse measurement influence reuse? Measuring an activity will tend to increase it. Comparing median level of software reuse for organizations that are or are not measuring reuse. The study shows no correlation Conclusion: –Organizations that measure reuse do not use these measurements to improve reuse levels.

How to improve reuse To improve systematic reuse concentrate on: –education about reuse –developers understanding on the economic feasibility of reuse –introduce a common development process that promotes reuse –make high quality assets available to developers