SW 2

Download as pptx, pdf, or txt
Download as pptx, pdf, or txt
You are on page 1of 18

Ahmed Mohamed ibrahim

42020026
Group2
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.
•.

You might also like