Lecture 1
Lecture 1
Course Outline
Unit 1: Introduction to software Development tools.
Unit 2: Software development.
Unit 3: Debugging.
Unit 4: Software configuration management.
Unit 5: Object modeling and software testing.
1/6
Unit 1: Introduction to software Development tools.
1. Introduction.
In software development, many of the difficulties reported by novice user without software
tools can be over come by systematic practices in the selection, acquisition and the preparation for
use of software tools. This report first derives the need for specific guidance in the introductions of
tools by examining the number of programming environment and then describe the practices suited
to this environment
1.2. Characteristics of users environment.
In order to characterize User environment it is first important to classify the software tools
1.2.1. Classification of environment
A survey of software tools usage consider the effect on tools usage on a very large number of
environmental factors including :
- size of software organization.
- types of organization.
- Applications and language.
- Development environment.
- Program running environment.
- Computer type.
- Involvement in tools development.
The extend of tool usage is classify into 3 levels
- Level Zero(0) minimal tool usage: Only tools normally provided with operating system were in
use e.g Assemblers,Loaders,Compilers, Debuggers,Interpreters.
- Level one (1) intermediate tools usage: Special purpose tools suited for the vision of the
organization but without explicit effect on software qualities were in used e.g File manager,
simulators,elementary file compiler .
- Level two (2) General purpose tools usage: it involving state and dynamic analysis features
were deliberately acquire or developed in order to enhance software quality and productivity. This
group represent the highest level of tools utilization.
The average level of tools utilization
The term programmer include analyst, programming supervisors and programming trainees
but not computers operators, libraries or other support personnel. The above data on 22
organization. Two (2) developers were not included in this population.
1.2.2. Selection of target environment:
In the table 1.1 , the data indicate that small and medium software organizations will
represent the target environment that stand to benefit must of the availability of the comprehensive
methodology for the information of software tools. In addition to the low level of current tools
2/6
usage, the following factor indicate that small and medium organization needs outside assistance in
the introduction of tools.
- Their awareness of tools in general and their knowledge about specific tools suited to their
need are frequently much less than that of the organization.
- Their knowledge of tool acquisition and installation practices turn to be inadequate to
permit them to obtain the full of available tools.
- Even when suitable tools are obtain and install, this organization frequently can not
mobilized the resources required for optimum tool utilization such as Training, Startup effort, and
change in practices to fully utilized a tool.
The above doesn’t imply that large and even very large organizations can not benefit from
further developments of methodology for the introduction of software tools and specifically from
effort in that area under-taken.
The reasons for focusing on Government organizations are :
- The demand for uniformity of software practices in government agencies is expected to
increase and tools can be assistance in providing and enforcing these uniformity. Hence, a greater
need for tool is expected to arise in this environment.
- Government agency usually have a greater need to control procedural asset to software
development and many tools address that need very specifically.
- there are a large number of tools currently in government inventory and some of these are
resident on computers that can be access by other government administrators via terminals. Thus,
the opportunity for tools usage is greater among government organization.v
- Successful use of a tools in government organization is likely to become generally known
where as smaller private organization may wish to restrike the dissimilation of these information for
competitive reasons. Thus, the ripple effects can be expected can be greater if government
organizations are address as the primary target for two introduction methodology.
1.2.3 The smaller MIS (Management of Information System) Environment:
The typical size of the smaller scientific software development group is
also to 20 to 39 programmers and low level of supervision is also
involve.
The lower supervisee label turns to be applications oriented but the top
supervisee top functions operate much more automatically than the
equivalent
The second label scientific supervisor typically assumes full
responsibility with the technology employ within his or her organization.
Where this supervisor takes an interest to this technology, structure
programming supported by appropriate tools is likely to be used.
On the other hand, if the interest of the supervisor is compiling to a
scientific specialty (simulations, analyses engineering). Software
technology can be very low priority items. Software Development
Introduction: Software development involve the designing, testing,
documenting, programming
3/6
2.3.2 Backend Development.
It is the area of development that focuses on the server site logic, databases,and
infrastructures that power the functionality of website and web application. It involve creating,
managing and storing data as well as handling server site processing authentication and
communication with server site. It works with server site language such as python, PHP, roobie,
java or c#, databases such as MySQL, PostgreSQL, MongoDB and various frameworks such as
Django, roobie unrise,express.js,etc. To build scalable and secure applications while handling server
configuration deployment and performance optimization.
4/6
Mobile development is d… specifically for need of mobile device users it encompasses the
creation of app of smart phone,and tablet with developer often choose between native development:
- using language like ISO, with swift or objective c.
- using android with java or kotline.
- cross platform development which allows for code-reuse across multiple system with react native
or Flutter.
2.4.3 Cloud computing:
It is kind of computing where scalable and elastic IT enabled capability are deliver as
service using internet technologies. A common used case in cloud computing in software
development is SAS( software as a service) SAS application are centrally hosted in cloud and
deliver to users over the internet on subscription
Cloud computing also revolutionized software development processes through IAAS
(infrastructure As A Service). Provider like Amazon web services (AWS) or Microsoft Asus offer
visualize computing resources and on demand development environment accessible over the
internet.
2.4.4 IoT and IIoT:
The IoT and IIoT (Industrial Internet of Things) are transforming the way we live and work
by connecting devices and system to the internet. In software development, these technologies have
open up new opportunities for creating innovative applications.
smart home technology is a prime example of iot in software development. Connected
devices allow users to control various home functions such as lighting, heating, or security remotely
through software applications. On the industrial side, iot has led to the development of systems that
improve operational efficiency in factory. For instance, predictive maintenance software can
canalize data from connected machine to predict and prevent potential vendors.
5/6
2.5 Code Debugging and refactoring:
Code Debugging and refactoring in companies are essential processes in software
development that contribute in maintaining code quality improving application performance and
making code bases more manageable over time .
2.5.1 Debugging:
It involve identifying and resolving errors in a code. This processes also require testing and
analyzing to isolate using tools like:
- Debuggers
- Logging frameworks.
- Pro-filers.
A common example of debugging is resolving issues in real-time application to prevent disruption
such as troubleshooting memory leaks in a web application to avoid slowdown or scratches .
2.5.2 Refractory:
it focuses on restructuring existing code without altering its functionality. This techniques
improves readability, reduces technical debt and enhances future maintainability. Refractory can
include simplifying complex functions renaming variable for clarity or breakdown large model into
smaller more manageable components.
6/6