0% found this document useful (0 votes)
28 views

Implementation Issues Task

This document discusses three topics in implementation issues: reuse, configuration management, and host-target development. It provides details on different levels of reuse including abstraction, object, component, and system levels. It also describes configuration management activities such as version control, system integration, problem tracking, and release management. Finally, it covers issues that can arise when developing software on a host system that will run on a different target system.

Uploaded by

ahmed emad
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
28 views

Implementation Issues Task

This document discusses three topics in implementation issues: reuse, configuration management, and host-target development. It provides details on different levels of reuse including abstraction, object, component, and system levels. It also describes configuration management activities such as version control, system integration, problem tracking, and release management. Finally, it covers issues that can arise when developing software on a host system that will run on a different target system.

Uploaded by

ahmed emad
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 18

Ahmed Emad Hassan

42020063
Group3
Dr: Sara Ahmed
Software 2
This part covered implementation issues
 There is three topics in implementation issues

 ▪ Reuse

 ▪ Configuration management

 ▪ Host-target development
Reuse

 From the 1960s to the 1990s, most new software was developed from scratch, by
writing all code in a high level programming language. ▪
 The only significant reuse or software was the reuse of functions and objects in programming
language libraries.

 Programming interfaces of present-day languages are very sophisticated


and are equipped huge library functions. Still, to bring the cost down of
end product, the organization management prefers to reuse the code,
which was created earlier for some other software. There are huge issues
faced by programmers for compatibility checks and deciding how much
code to reuse.
 Costs and schedule pressure mean that this approach became increasingly
unrealistic, especially for commercial and Internet-based systems.
 An approach to development based around the reuse of existing software emerged
and is now generally used for business and scientific software.
Reuse levels
 The abstraction level
 At the abstraction level, software developers do not directly reuse software components or systems. Instead, they leverage knowledge
of successful abstractions in the design of their own software. This involves identifying common patterns, architectures, or design
principles that have proven effective in previous projects and applying them to the current software design. By using these higher-level
abstractions, developers can improve the overall quality and maintainability of their software.

 The object level


 The object level of reuse involves directly reusing objects from a library or pre-existing codebase. Objects are modular units of code
that encapsulate data and the operations that can be performed on that data. Rather than writing the code from scratch, developers
can leverage pre-built objects that have already been tested and proven to work correctly. This level of reuse saves time and effort, as
developers can focus on creating higher-level logic by assembling and configuring existing objects.

 The component level


 Components are collections of objects and object classes that are designed to work together to provide specific functionality. At the
component level, developers reuse these pre-built collections of objects to accelerate the development process. Components offer
higher-level functionality compared to individual objects and provide a level of abstraction that allows developers to focus on
integrating and configuring components rather than writing code from scratch. Examples of components include libraries, frameworks,
or software modules that are designed to be reusable across multiple projects.
 The system level
 At the system level, developers reuse entire application systems or subsystems. This level of reuse involves integrating and adapting
existing software systems into new projects. Rather than building the entire system from scratch, developers leverage pre-existing
systems that have already been developed and tested. This level of reuse is often seen in the form of software platforms, where
developers build their applications on top of an existing infrastructure or architecture.
Software reuse
Reuse costs

 The costs of the time spent in looking for software


 The costs of buying the reusable software.
 The costs of adapting and configuring the reusable
 The costs of integrating reusable software elements with
each other
Configuration management
 Configuration management is the name given to the
general process of managing a changing software system.
 The aim of configuration management is to support the system integration
process so that all developers can access the project code and documents in a
controlled way, find out what changes have been made, and compile and link
components to create a system.
Configuration management activities

 Version control
 Version control is a fundamental part of configuration management. It involves managing different versions of software
artifacts, such as source code files, documentation, and configuration files

 System integration .
 Configuration management facilitates system integration by ensuring that various components, subsystems, and modules
work together seamlessly. It involves defining and managing the interfaces, dependencies, and interactions between
different parts of the software system. Configuration management helps ensure that the correct versions of components
are integrated and that any conflicts or compatibility issues are identified and resolved.
 Problem tracking
 Problem tracking, also known as issue or bug tracking, is an integral part of configuration management. It involves tracking
and managing reported issues, bugs, or feature requests related to the software system.
 Release management,
Release management focuses on packaging, distributing, and deploying software releases. It involves creating
release packages, documenting release notes, and coordinating the release process.
Host-target development

 Most software is developed on one computer (the host),but runs on a separate


machine (the target).
 we can talk about a development platform and an execution platform.
- platform is more than just hardware.
- It includes the installed operating system , database management system ,
development platforms , an interactive development environment.
 Development platform , usually has different installed software than
execution platform
Host-target development
Open source development

 Open source development is an approach to software development in which


the source code of a software
 Open source software extended this idea by using the Internet to recruit a
much larger population of volunteer developers.
 The best-known open source product is, the Linux used as a server system
 Other important open source products are Java , Apache web server and my
SQL database management system If you want documentation and support,
then you may
Open source systems

 The best-known open source product is, the Linux used as a server system

 Other important open source products are Java , Apache web server and my
SQL database management system If you want documentation and support,
then you may

 The open source systems are usually very reliable.


Open source business

 more product companies are using an open source approach to development.

 Their business model is not reliant on selling a softwareproduct but on selling


support for that product.
Open source licensing

 A fundamental principle of open-source development is that source code


should be freely available, this does not

- Legally, the developer of the code (either a company or an in dividual) still


owns the code.

- Some open source developers believe that if an open sourcecomponent is


used to develop a new system, then that system
License models

 The GNU General Public License (GPL). This is a so-called ‘reciprocal’ license
that means that if you use open source software that is licensed under the
GPL license, then you must make that software open source.
 The GNU Lesser General Public License (LGPL) is a variant of the GPL license
where you can write components that link to open source code without
having to publish the source of these components.
 The Berkley Standard Distribution (BSD) License. This is anon-reciprocal
license, which means you are not obliged to republish any changes or
modifications made to open source code. You can include the code in
proprietary systems that are sold.
License management

 Establish a system for maintaining information about open-source components


that are downloaded and used
 Be aware of the different types of licenses and understand how a component
is licensed before it is used.
 Be aware of evolution pathways for components.
 Educate people about open source.
 Have auditing systems in place.
 Participate in the open source community.
Key points

 Software design and implementation are inter-leaved activities. The level of


detail in the design depends on the type of system and whether you are
using a plan-driven or agile approach.
 The process of object-oriented design includes activities to design the system
architecture, identify objects in the system, describe the design using
different object models and document the component interfaces.
 A range of different models may be produced during an objectoriented design
process. These include static models (class models, generalization models,
association models) and dynamic models (sequence models, state machine
models).
 Component interfaces must be defined precisely so that other objects can
use them. AUML interface stereotype may be used to define interfaces.
Key points about part 2
 Reuse Levels: Software reuse can occur at different levels, including abstraction, object,
component, and system levels. Each level involves leveraging existing software
components or systems to improve the development process.
 Configuration Management: Configuration management is a crucial process in software
development. It involves managing changes, versions, integration, builds, change control,
problem tracking, and release management to ensure the successful development and
maintenance of a software system.
 Version Control: Version control is a core aspect of configuration management, enabling
the tracking and management of different versions of software artifacts and facilitating
collaboration among developers.
 Problem Tracking: Configuration management includes the tracking and management of
reported issues, bugs, or feature requests related to the software system, ensuring they
are addressed systematically.
 Most software development is host-target development. You use an IDE on a
host machine to develop the software, which is transferred to a target
machine for execution.
 Open source development involves making the source code of a system publicly
available. This means that many people can propose changes and
improvements to the software.

You might also like